随笔分类 - 数据结构
摘要:1,双向链表相当于两个单向循环链表。
2,双向链表的结点定义。
1 struct DULNode
2 {
3 int data;
4 struct DULNode * prior;
5 struct DULNode * next;
6 };
7
8 typedef struct DULNode * linklist;
3,单循环链表的操作都适用于双循环链表。
4,双循环链表的操作集合仍在头文件defs.h中。
2,双向链表的结点定义。
1 struct DULNode
2 {
3 int data;
4 struct DULNode * prior;
5 struct DULNode * next;
6 };
7
8 typedef struct DULNode * linklist;
阅读全文
摘要:1,什么叫单向循环链表。单向循环链表是指在单链表的基础上,表的最后一个元素指向链表头结点,不再是为空。
2,由图可知,单向循环链表的判断条件不再是表为空了,而变成了是否到表头。
3,链表的结点表示
1 struct LNode
2 {
3 int data;
4 struct LNode * next;
5 };
6 typedef struct LNode * linklist
阅读全文
摘要:1,我们研究数据结构的操作,第一要弄懂它的结构体表示(也就是结构体特点)、第二要清楚它的初始化和撤销过程。对于静态链表首先分析它的特点:一是采用静态存储方式,二是没有指针。静态链表就是不用指针来表示链式关系的一种巧妙实现。
2,静态链表的结构体定义
1 #define MAX 100
2
3 typedef struct
4 {
5 int data; //数据域的类型可以是任意的基类型,包括数组
6 int cur;
7 }component, slinklist[MAX]
阅读全文
摘要:可能是顺序表研究的细致了一点,单链表操作一下子就实现了。这里先实现带头结点的单链表操作。
大概有以下知识点.
1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址的部分称为指针域。
2;结点示意图:
3;头指针:头指针始终指向链表第一个元素,当有头结点时头结点就是链表第一个元素。头指针具有标识左右,故头指针命名为链表的名字,这里为linklist。头指针是一定存在的。
4;头结点:引入头结点的目的是,将链表首元结点的插入和删除操作与其他结点的插入和删除操作统一起来。(即头指针地址不在发生变化)
阅读全文
摘要:我发现在学习数据结构的过程中每次都有这样的困惑,各种类型的书都看了一下,如果书上写的简单一点那么自己就会一带而过,如果书上数学公式算法分析一大堆,那真是不堪入眼,看的一点兴趣全无,以至于一道走来,简单的没完全会,难的一点没懂,不断的停留一个阶段,上下两难。而现在时间紧迫,我想要在毕业之前认真的学完数据结构与算法。经过上面多次的困惑,我觉得要真正从纸质书本上学到东西,得走出来,得站在作者的角度去学习思考,统筹规划每一章的内容,每一个知识点。因此我打算以作者的思维去记录数据结构学习中的每一个问题,就想象这本书是我写的吧。
阅读全文
浙公网安备 33010602011771号