#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. ZUI(BootStrap)使用vue动态插入HTMl所创建的data-toggle事件初始化方法

    用ZUI的图片浏览:lightbox 写静态html的时候是有预览效果的,使用了vue动态加载就没有效果了, 网上的说法是动态生成的没有激活事件:ZUI(BootStrap)动态插入HTMl所创建的d ...

  2. 改变checkbox默认样式

    input[type='checkbox']{ width: 5rem; height: 5rem; -webkit-appearance: none; /*清除复选框默认样式*/ backgroun ...

  3. AndroidStudio布局编辑器强制刷新布局界面

    用AndroidStudio布局编辑器编辑界面的时候,在selector里调整按钮的颜色,调整后的颜色经常无法实时显示在布局编辑器里,每次都重新运行程序查看界面又非常麻烦和低效,可以用以下方法解决: ...

  4. Centos7查看关闭防火墙

    查看防火墙状态: firewall-cmd --state 关闭防火墙 service firewalld start 开机启动 service firewalld stop 禁止开机启动 syste ...

  5. Chrome浏览器控制台报 POST http://*** net::ERR_BLOCKED_BY_CLIENT

    开发项目广告模块时,遇到前端提交的请求后台拿不到,好像被什么拦截了,查看了过滤器,拦截器都无错误,且请求也到不了拦截器,chrome浏览器报:ERR_BLOCKED_BY_CLIENT错误 搞腾一半天 ...

  6. fiddler笔记:统计选项卡(Statistics)

    Request Count 选中的Session数. Bytes sent Http请求头和请求体中向外发送的字节总数. Bytes received HTTP请求头和请求体中接收到的所有字节数. R ...

  7. 用函数来编写实现strlen()函数功能

    strlen( )函数: 测试字符串实际长度的函数,它的返回值是字符串中字符的个数(不包含’\0’) //strlen( )函数:测试字符串实际长度的函数,它的返回值是字符串中字符的个数(不包含’\0 ...

  8. Codeforces 1247E. Rock Is Push

    传送门 显然考虑 $dp$ ,设 $fx[i][j]$ 表示从 $(i,j)$ 出发往下走一格,最终到达 $(n,m)$ 的方案数,$fy[i][j]$ 表示从 $(i,j)$ 出发往右走一格,最终到 ...

  9. TCP协议探究(三):RTT、滑动窗口和阻塞处理

    1 RTT算法 1.1 概述 上一节说了重传机制需要设置一个重传超时值(RTO,Retransmission TimeOut),RTO设长了,重发太慢:设短了,可能导致包没有丢,就重发了,可能导致雪崩 ...

  10. MVC授权不通过之后不执行任何自定义ActionFilter

    如下一个Action [Authorize] [F1]//自定义过滤器,继承自ActionFilter public ActionResult Index() { return View(); } 如 ...