链表基础知识
来源:互联网 发布:淘宝上找不到的衣服 编辑:程序博客网 时间:2024/05/22 05:12
链表之前要有一定的C语言基础,如指针,结构体,分配内存malloc等,切勿操之过急。
第一次接触可能有点难度,我是把书上的代码反复敲,反复看注释,搞了好几天,才渐渐懂了。
闲话少说,上代码。
#include<stdio.h>#include<stdlib.h>//要用到mallocstruct llist{int num;char name[20];struct llist *next; // 指向下一标签};int main(){int i;struct llist *head; //创建头指针struct llist *ptr, *ptr1; //ptr代表链表尾部的结点,ptr1代表新开辟的结点//为头指针分配内存空间head = (struct llist *)malloc(sizeof(struct llist));printf("联系人\n");printf("输入学号\n");scanf("%d", &head->num);//注意别忘了取地址符&printf("输入学号%d的姓名\n", head->num);scanf("%s", &head->name);head->next = NULL; //设置指针初值,使head为链表的开头ptr = head; //将ptr指向链表的开始for (i = 0; i<2; i++){ptr1 = (struct llist *)malloc(sizeof(struct llist));//为新结点分配空间//赋值操作printf("输入学号\n");scanf("%d", &ptr1->num);//注意别忘了取地址符&printf("输入学号%d的姓名\n", ptr1->num);scanf("%s", &ptr1->name);//结点的连接,so importantptr1->next = NULL; //使ptr1末尾为NULLptr->next = ptr1; //把ptr1连接到ptr->next上,完成两个结点的连接ptr = ptr->next; //指向下一结点,就是把ptr向前走一步/*要好好理解上面3个式子是怎么连接的 */}printf("联系人\n");ptr = head; //使ptr指向链表的开始,所以要用到head,否则链表头不好找for (i = 0; i<3; i++) //注意i的数目,别忘了for循环前也输入了{printf("学号%d 姓名-%s\n", ptr->num, ptr->name);ptr = ptr->next; //指向下一结点}return 0;}
欢迎各位大神来提问,指正。
0 0
- 链表基础知识
- 链表的基础知识
- 链表基础知识
- 链表基础知识整理
- 【基础知识】:链表反序打印
- 【链表篇】单向链表的基础知识
- 学习java数据结构基础知识之链表
- 区块链 入门 基础知识
- 区块链基础知识
- BOM表的基础知识
- 线性表基础知识(一)
- 线性表基础知识(二)
- 线性表基础知识(三)
- 线性表基础知识(四)
- Hash表基础知识
- 线性表的基础知识
- 线性表基础知识总结
- 线性表基础知识总结
- 跟着实例学习ZooKeeper的用法: Leader选举
- Asp.net MVC3 文本编辑器KindEditor使用及图片上传浏览
- Android---手动创建线程与GUI线程同步(三)
- 跟着实例学习ZooKeeper的用法: 缓存
- 一个数组保存了N个结构
- 链表基础知识
- android 滚动与设置接口方法
- centos下安装redis,并且设置自启动脚本
- Hibernate HelloWorld-06 单向多对一的映射关系
- 面试题29:数组中出现次数超过一半的数字
- 算法导论(二)堆排序
- hdu 5246 超级赛亚ACMer
- Virtual Box cannot access the kernel driver
- TCP三次握手和四次挥手过程以及连接为什么使用三次连接,释放使用四次