#include <stdio.h>
#include <stdlib.h>
#define N 5
/*N 假定数组长度为5*/
typedef struct snode
{
int data;
struct snode *next;
} SNODE; /*第一步,添加链表头信息*/
SNODE *createhead(int a[])
{
SNODE *h,*p,*q;
/*q为上一节点,p为当前节点*/
int i;
q=(SNODE *)malloc(sizeof(SNODE));
h=q;
for(i=;i<N;i++)
{
p=(SNODE *)malloc(sizeof(SNODE));
p->data = a[i];
q->next=p;
q=p;
}
q->next=;
return h;
} /*第二步打印链表中的元素*/
void showstars(SNODE *h)
{
SNODE *p;
p=h->next;
while(p)
{
printf("%d 其地址为 %x\n",p->data,p);
p=p->next;
}
} /*第三步删除/回收节点*/
void revokeresource(SNODE *h)
{
SNODE *p,*q;
p=h->next;
while(p)
{
q=p->next;
printf("哦,no~~~%d被回收了\n",p->data);
free(p);
p=q;
}
free(h);
} /*添加一个节点,目标在值为4的结点前添加一个结点,如果值为4的节点不存在,则在末尾添加一个结点*/
void insert(SNODE *h,int a,int d)
{
SNODE *p,*q;
SNODE *s;
s=(SNODE *)malloc(sizeof(SNODE));
s->data=d;
q=h;p=h->next;
while(p)
{
if(p->data==a) break;
q=p;p=p->next;
}
s->next=q->next;
q->next=s;
showstars(h);
} /*删除值为targetdta的链接节点*/
void collectnode(int targetdata,SNODE *h)
{
SNODE *p,*q;
p=h->next;
q=h;
while (p)
{
if(p->data==targetdata)
{
break;
}
q=p;p=p->next;
}
if(p)
{
q->next=p->next;
free(p);
}
} void main()
{
int saiwa[N]={,,,,};
SNODE *head;
head=createhead(saiwa);
showstars(head);
printf("================*在数组的值4前插入节点值8=================\n");
insert(head,,); printf("================*回收节点4=================\n");
collectnode(,head);
showstars(head);
}

输出结果:

粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构的更多相关文章

  1. 粗暴,干就完了----徐晓冬似的C语言自学笔记----前言

    10对年前就觉得C/C++语言很酷,第一印象就是90年代末,个人电脑在中华大地开始普及的岁月中,层出不穷的病毒,对了,全是C/C++写的:除了危及人民群众信息安全以外,C系列语言用途甚广,可以发明其他 ...

  2. 粗暴,干就完了----徐晓冬似的C语言自学笔记---字符数组相关技术

    字符串拼接函数 strcat() 字符串----作为很多编程语言的鼻祖C语言,没有字符串类型,取而代之的字符数组,很多数组在声明的时候会给定数组长度,然而我们却可以这样写 char mywords[] ...

  3. 51单片机C语言学习笔记3: 存储器结构

    MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ...

  4. Go语言学习笔记(四)结构体struct & 接口Interface & 反射

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  5. Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  6. c语言学习笔记 for循环的结构

    其实感觉for循环没有while循环那么直白好理解. for(i=0;i<n;i++) { dosth(); } i=0是i的初始值. i<n是循环进行的条件. i++是每次循环要做的事情 ...

  7. c语言学习笔记(10)——结构体

    ------------------------------------------------------------------ # include <stdio.h> struct ...

  8. Go语言学习笔记(8)——包和结构体

    包 —— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点.主函数应该存在main包中. 结构体: 通过 . 操作符访问结构体的各个成员! 1. 定义结构体类型person: type per ...

  9. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

随机推荐

  1. win10配置Keras及GPU环境

    今天搭建了Keras深度学习的环境 详细记录一下 安装Anaconda3 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. Anac ...

  2. Java网络编程-你是GG还是MM?

    第六阶段 网络编程 每一台计算机通过网络连接起来,达到了数据互动的效果,而网络编程所解决的问题就是如何让程序与程序之间实现数据的通讯与互动 在吗?你是GG还是MM? (一) 网络模型概述 (1) 两大 ...

  3. 【AtCoder】AGC005

    AGC005 A - STring 用一个栈,如果遇到S就弹入,如果遇到T栈里有S就弹出栈顶,否则T在最后的串里,最后计算出的T和栈里剩的S就是答案 #include <bits/stdc++. ...

  4. vue的 :class 与 :style 的讲解

    Vue样式: Vue中通过属性绑定为元素的class样式 第一种使用方式:直接传递一个数组 注意:这里的class需要使用v-bind做数据绑定 第二种使用方式:在数组中使用三元表达式 第三种使用方式 ...

  5. python学习-9 pycharm的安装

    1.python 开发IDE :  pycharm.eclipse等等 安装: 百度搜索pycharm 就可以了,去官网下载专业版.(百度有各种破解方法)                    #不要 ...

  6. 【Python基础】08_Python中的列表

    1.列表的定义 List(列表)是Python中使用的 最频繁 的数据类型,其他语言通常叫数组 专门用于存储 一串信息 列表用 [] 定义,数据 之间用 , 分割 列表的 索引(位置) 从 0 开始 ...

  7. 【规律】Growing Rectangular Spiral

    Growing Rectangular Spiral 题目描述 A growing rectangular spiral is a connected sequence of straightline ...

  8. k8s之自定义指标API部署prometheus

    1.自定义指标-prometheus node_exporter是agent;PromQL相当于sql语句来查询数据; k8s-prometheus-adapter:prometheus是不能直接解析 ...

  9. jemeter鬓发压力测试包

    使用: 为子线程添加响应时间:https://www.cnblogs.com/duanxz/p/5464993.html 结果查看分析:聚合报告在监听器里面: https://wenku.baidu. ...

  10. 【Caffe学习笔记】一 、环境安装 Caffe + cuda + windows10 + VS2015 安装笔记, win7也适用

    1. 下载cuda8.0  cudnn5   anaconda https://developer.nvidia.com/cuda-80-ga2-download-archive https://de ...