粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构
#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语言自学笔记-----实现一个链表结构的更多相关文章
- 粗暴,干就完了----徐晓冬似的C语言自学笔记----前言
10对年前就觉得C/C++语言很酷,第一印象就是90年代末,个人电脑在中华大地开始普及的岁月中,层出不穷的病毒,对了,全是C/C++写的:除了危及人民群众信息安全以外,C系列语言用途甚广,可以发明其他 ...
- 粗暴,干就完了----徐晓冬似的C语言自学笔记---字符数组相关技术
字符串拼接函数 strcat() 字符串----作为很多编程语言的鼻祖C语言,没有字符串类型,取而代之的字符数组,很多数组在声明的时候会给定数组长度,然而我们却可以这样写 char mywords[] ...
- 51单片机C语言学习笔记3: 存储器结构
MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- c语言学习笔记 for循环的结构
其实感觉for循环没有while循环那么直白好理解. for(i=0;i<n;i++) { dosth(); } i=0是i的初始值. i<n是循环进行的条件. i++是每次循环要做的事情 ...
- c语言学习笔记(10)——结构体
------------------------------------------------------------------ # include <stdio.h> struct ...
- Go语言学习笔记(8)——包和结构体
包 —— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点.主函数应该存在main包中. 结构体: 通过 . 操作符访问结构体的各个成员! 1. 定义结构体类型person: type per ...
- 2017-04-21周C语言学习笔记
C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...
随机推荐
- Information retrieval (IR class1)
1. 什么是IR? IR与数据库的区别? 答:数据库是检索结构化的数据,例如关系数据库:而信息检索是检索非结构化/半结构化的数据,例如:一系列的文本.信息检索是属于NLP(自然语言处理)里面最实用的一 ...
- PYTHON 100days学习笔记008-3:输入和输出
目录 Day008-03:Python3 输入和输出 1.输出格式美化 1.1 str.format()用法 1.2 旧式字符串格式化 2.读取键盘输入 3.读和写文件 4.文件对象的方法 4.1 f ...
- RestTemplate实践(及遇到的问题)
在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Apache的Http Client.Netty的异步 ...
- kafka consumer 的配置(五)
fetch.min.bytes. #获取最小字节数据 Consumer 向broker中要数据时是按大小来返回的,如果数据没有达到指定的MB,consumer会处于等待状态,直到broker 从pro ...
- React Native 中 component 生命周期
React Native 中 component 生命周期 转自 csdn 子墨博客 http://blog.csdn.net/ElinaVampire/article/details/518136 ...
- 莫比乌斯反演--HDU模板题
题意:http://acm.hdu.edu.cn/showproblem.php?pid=1695 直接上莫比乌斯模板. #include <bits/stdc++.h> using na ...
- 牛客 26E 珂学送分2 (状压dp)
珂...珂...珂朵莉给你出了一道送分题: 给你一个长为n的序列{vi},和一个数a,你可以从里面选出最多m个数 一个合法的选择的分数定义为选中的这些数的和加上额外规则的加分: 有b个额外的规则,第i ...
- How does a browser know which response belongs to which request?
Today I knows that the server never send a request to a client! It just make response~ So,if the bro ...
- 在生产环境中使用Compose 【翻译】
在生产环境中使用Compose 在开发环境中使用Compose定义你的应用,可以使用此定义在不同的环境,(如 CI.暂存和生产)中运行应用程序. 部署应用程序的最简单方法是在单个服务器上运行该应用程序 ...
- 怎样修改一个已存在的Cookie
Cookie的修改也需要借助 Response-Header 的 Set-Cookie 字段, 不过需要注意的是: 待修改cookie的 key / domain / path / secure 必须 ...