线性链表之123
来源:互联网 发布:数据可视化之美 编辑:程序博客网 时间:2024/06/06 09:39
就这么东打一枪西打一枪的混过了一个月的时间,虽然还只能算作入门,但对数据结构也算小有那么点了解了。线性链表--线性表的链式存储结构,区别对待于顺序存储结构。
线性链表的结点分为两部分:数据域和指针域。数据域,顾名思义存储数据元素信息的域;指针域,用于存储直接后继(前驱)的存储位置
数据结点的示意图
单链表:
//线性表的单链表存储结构typedef struct Lnode{ Elemtype data; struct Lnode *next;}Lnode,*Linklist;
单链表存储结构示意图
注意:
由于链表中第一个结点没有直接前驱,所以必须设置一个头指针head存储第一个结点的地址。最后一个结点没有直接后继,其指针域应为空指针,C语言用NULL或0来表示,在图中表示为“∧”。
单链表操作中的malloc和free函数:
原型:(在头文件stdlib.h中声明)
void *malloc(size_t size);(动态内存的分配)
malloc函数申请一块连续的内存,它会向程序返回一个指向这块内存的指针,如果申请失败,就会返回一个NULL指针,因此,每次检查malloc返回的指针是非常必要的。size表示其申请的字节(字符)数。
例子:
实际上其与pi=malloc(32*sizeof(int))完全一样,而且后者的好处也很明显
int *pi;pi=malloc(128);...
实际上其与pi=malloc(32*sizeof(int))完全一样,而且后者的好处也很明显
void free(void *pointer);(动态内存的释放)
p=(LinkList)malloc(sizeof(LNode)):系统生成一个Lnode型的结点,同时将该结点的起始位置赋给指针变量p;
Free(q):系统回收一个Lnode型的结点,回收后的空间可以备作再次生成结点时用。
可能会有人在单链表创建上犯点儿迷糊,下面的代码希望能够帮到大家。
n个结点单链表的创建:
1.逆位序:
Void CreateList-L(LinkList L,int n){ //逆位序输入n个元素的值,建立带表头结点的单链线性表L if(L=(LinkList )malloc(sizeof(Lnode)))==NULL) exit(1); L–>next=null;//先建立一个带头结点的单链表(头结点的指针域为空) int i; for(i=n;i>0;--i) { if((p=(LinkList )malloc(sizeof(Lnode)))==NULL) exit(1); scanf(("%d",&p–>data); //输入元素值 p–>next= L–>next; L–>next=p; }//for}// CreateList-L 算法的时间复杂度:O(listlength(L)
2.正位序:
Void CreateList-L(LinkList L,int n){ //正位序输入n个元素的值,建立带表头结点的单链线性表L if(( L=(LinkList )malloc(sizeof(Lnode)))==NULL) exit(1); L–>next=null;//先建立一个带头结点的单链表(头结点的指针域为空) q=L; int i; for(i=1;i<=0;++i) { if(p=(LinkList )malloc(sizeof(Lnode)))=NULL)//生成新结点并检验申请内存是否成功 exit(1); scanf(("%d",&p–>data); //输入元素值 q–>next=p; q=q–>next; }//for}// CreateList-L 算法的时间复杂度:O(listlength(L))
- 线性链表之123
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 线性表之链表
- 之线性链表小结
- 数据结构之线性链表
- 数据结构之: 线性链表
- 数据结构之线性链表
- 数据结构之线性链表
- 数据结构之线性链表
- 数据结构之线性链表
- Python 设置系统默认编码以及其他编码问题大全
- url传递中文乱码问题
- LPTSTR转换为std::string方法探索
- 在JSP中生成平面柱状图
- android 被强制横屏,Activity重启问题解决方案
- 线性链表之123
- 截取固定长度汉字差半个字符
- 专题3-1.编译过程简介
- java编程练习题
- C++ std::list.size() has linear complexity
- 1005 威威猫系列故事——篮球梦
- android:inputType 属性及其支持的取值
- gstapp-0.10库的安装
- javascript与jquery与node.js