重新认识链表(单向链表并遍历)
2016-05-08 00:00
274 查看
接触了数据结构 发现无非就是 数据的存储问题和解决办法
那么就是 线性和非线性
最基础的就是 线性表(数组和链表)
不得不又重新 拾起 C语言,也是我比较头痛的 指针问题。
C语言实训的时候 接触到链表 当时并没有 很好的理解他 只是死记了他的结构模式和语法 。
今天十几分钟的复习 突然感受到了 他的逻辑思想 还是很高兴的
下面是一个简单的 单链表 。
有问题大家互相交流学习!
那么就是 线性和非线性
最基础的就是 线性表(数组和链表)
不得不又重新 拾起 C语言,也是我比较头痛的 指针问题。
C语言实训的时候 接触到链表 当时并没有 很好的理解他 只是死记了他的结构模式和语法 。
今天十几分钟的复习 突然感受到了 他的逻辑思想 还是很高兴的
下面是一个简单的 单链表 。
有问题大家互相交流学习!
#include<stdio.h> #include<malloc.h> struct list { int a; struct list * next; //下一个节点地址 } ; int main(){ struct list *p; //每次输入新申请的节点 struct list *head=NULL; //头结点 struct list *last=NULL; //下一个数据 int i; //申请的节点数 int j; printf("%s\n","请输入你要申请的节点数"); scanf("%d",&j); //输入需要申请的节点数 for(i=0;i<j;i++){ p = (struct list *)malloc(sizeof(struct list));//申请新节点空间 scanf("%d",&p->a); //为新申请的节点填充值 p->next=NULL; //新申请的节点 只是为了填写数据,不真正连接到链表中 if(head==NULL){ //确定链表头为空 head=last=p; //把代理p节点的值赋给表头 }else{ last->next=p; // 把 代理p 节点的地址给真正链表结构的指针所指处 last=p; //把代理p的数据地址给链表 } } p=head; //把表头地址给代理p while(p!=NULL){ printf("%d ",p->a); //输出当前内存位置的数据 p=p->next; //指针下移 } }
相关文章推荐
- 异步load()加载 ckeditor 编辑器
- zzuli OJ 1113: 递归调用的次数统计(函数专题)
- zzuli OJ 1008: 美元和人民币
- 将两个非递减的有序链表合并为一个非递增的有序链表
- zzuli OJ 1064: 加密字符
- zzuli OJ 1129: 第几天
- Spring的四种事务管理(一种编程式事务+三种声明事务)<学习随笔>
- zzuli OJ 1088: 手机短号 (多实例)
- zzuli OJ 1055: 兔子繁殖问题
- SpringMVC简单入门(注解)<学习随笔>
- zzuli OJ 1051: 平方根的和
- ZooKeeper集群搭建实例,以及集成dubbo时的配置
- zzuli OJ 1126: 布尔矩阵的奇偶性
- zzuli OJ 1084: 计算两点间的距离(多实例测试)
- zzuli OJ 1048: 阶乘表
- zzuli OJ 1081: n个数求和 (多实例测试)
- zzuli OJ 1045: 数值统计
- EJB 会话Bean的生命周期
- zzuli OJ 1110: 最近共同祖先(函数专题)
- zzuli OJ 1022: 三整数排序