51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#数据结构
吴裕雄--天生自然数据结构:广义表
对于存储{1,{1,2,3}}这样的数据,更适合用广义表结构来存储。广义表,又称列表,也是一种线性存储结构。同数组类似,广义表中既可以存储不可再分的元素,也可以存储广义表,记作:LS=(a1,a2,…,an)其中,LS代表广义表的名称,an表示广义表存储的数据。广义表中每个ai既可以代表单个元素,也可以代...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
广义
吴裕雄--天生自然数据结构:链式队列及基本操作
链式队列,简称"链队列",即使用链表实现的队列存储结构。链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为top和rear)分别指向链表中队列的队头元素和队尾元素//链表中的节点结构typedefstructQNode{intdata;structQNode*next;}QNode;//创建链式队列的函数QNo...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
链式
吴裕雄--天生自然数据结构:顺序队列
顺序队列,即采用顺序表模拟实现的队列结构。队列具有以下两个特点:数据从队列的一端进,另一端出;数据的入队和出队遵循"先进先出"的原则;由于顺序队列的底层使用的是数组,因此需预先申请一块足够大的内存空间初始化顺序队列。除此之外,为了满足顺序队列中数据从队尾进,队头出且先进先出的要求,我们还需要定义两个指针(top和rea...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
顺序
吴裕雄--天生自然数据结构:队列存储结构
队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出通常,称进数据的一端为"队尾",出数据的一端为"队头",数据元素进队列的过程称为"入队",出队列的过程称为"出队"。栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
队列
吴裕雄--天生自然数据结构:链栈及基本操作
链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈底。将链表头部作为栈顶的一端,可以避免在实现数据"入栈"和"出栈"操作时做大量遍历链表的耗时操作。链表的头部作为栈顶,意味着:在实现数据"入栈"操作时,需...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
链栈
吴裕雄--天生自然数据结构:顺序栈及基本操作
顺序栈,即用顺序表实现栈存储结构在顺序表中设定一个实时指向栈顶元素的变量(一般命名为top),top初始值为-1,表示栈中没有存储任何数据元素,及栈是"空栈"。一旦有数据元素进栈,则top就做+1操作;反之,如果数据元素出栈,top就做-1操作。 //元素elem进栈,a为...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
顺序
吴裕雄--天生自然数据结构:栈存储结构
同顺序表和链表一样,栈也是用来存储逻辑关系为"一对一"数据的线性存储结构栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据"存"和"取"的过程有特殊的要求:栈只能从表的一端存取数据,另一端是封闭的在栈中,无论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。拿图1的栈来说,从图中数据的...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
存储
吴裕雄--天生自然数据结构:循环链表(约瑟夫环)的建立
无论是静态链表还是动态链表,有时在解决具体问题时,需要我们对其结构进行稍微地调整。比如,可以把链表的两头连接,使其成为了一个环状链表,通常称为循环链表。只需要将表中最后一个结点的指针指向头结点,链表就能成环儿需要注意的是,虽然循环链表成环状,但本质上还是链表,因此在循环链表中,依然能够找到头指针和首元节点等。循环链表和...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
环链
吴裕雄--天生自然数据结构:双向链表基本操作
根据数据添加到双向链表中的位置不同,可细分为以下3种情况:添加至表头将新数据元素添加到表头,只需要将该元素与表头元素建立双层逻辑关系即可。换句话说,假设新元素节点为temp,表头节点为head,则需要做以下2步操作即可:temp->next=head;head->prior=temp;将head移至temp...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
双向
吴裕雄--天生自然数据结构:双向链表及创建
无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表)。虽然使用单链表能100%解决逻辑关系为"一对一"数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中需要大量地找某指定结点的前趋结点,使用单链表无疑是灾...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
双向
吴裕雄--天生自然数据结构:静态链表基本操作
静态链表添加元素从备用链表中摘除一个节点,用于存储元素4;找到表中第2个节点(添加位置的前一个节点,这里是数据元素2),将元素2的游标赋值给新元素4;将元素4所在数组中的下标赋值给元素2的游标;//向链表中插入数据,body表示链表的头结点在数组中的位置,add表示插入元素的位置,a表示要插入的数据voidinsert...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
静态
吴裕雄--天生自然数据结构:静态链表及其创建
静态链表,也是线性存储结构的一种,它兼顾了顺序表和链表的优点于一身,可以看做是顺序表和链表的升级版。使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)。创建一个足够大的数组,假设大小为6接着,在将...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
静态
吴裕雄--天生自然数据结构:单链表的基本操作
创建链表的代码如下所示://声明节点结构typedefstructLink{intelem;//存储整形元素structLink*next;//指向直接后继元素的指针}link;//创建链表的函数link*initLink(){link*p=(link*)malloc(sizeof(link));//创建一个头结点li...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
单链表
吴裕雄--天生自然数据结构:单链表,链式存储结构
链表,别名链式存储结构或单链表,用于存储逻辑关系为"一对一"的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。数据元素随机存储,并通过指针表示数据之间逻辑关系的存储结构就是链式存储结构。链表中每个数据的存储都由以下两部分组成:数据元素本身,其所在的区域称为数据...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
单链表
吴裕雄--天生自然数据结构:顺序表的基本操作
顺序表插入元素向已有顺序表中插入数据元素,根据插入位置的不同,可分为以下3种情况:插入到顺序表的表头;在表的中间位置插入元素;尾随顺序表中已有元素,作为顺序表中的最后一个元素;虽然数据元素插入顺序表中的位置有所不同,但是都使用的是同一种方式去解决,即:通过遍历,找到数据元素要插入的位置,然后做如下两步工作:将要插入位置...
代码星球
·
2020-05-24
吴裕雄
天生
自然
数据结构
顺序
首页
上一页
...
15
16
17
18
19
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他