广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。思想:广义表就类似下图的结构,他的大体(下图第一行)相当于一个带头结点的链表,代码思想,首先要有一个头结点为HEAD类型,每一个广义表有..
分类:
其他好文 时间:
2016-04-05 02:22:38
阅读次数:
277
记忆精简:不带头结点,需要创建n个结点,包括三个指针,头指针head,一个游标指针p和创建结点的s....
分类:
其他好文 时间:
2016-03-15 06:21:07
阅读次数:
189
单链表的整表创建 声明一结点p和计数器变量i 初始化一空链表L 让L的头结点的指针指向NULL,即建立一个带头结点的单链表 循环实现后继结点的赋值和插入 头插法:从一个空表开始,生成新节点,读取数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头上,直到结束位置。简单来说就是把新加进的元素放
分类:
编程语言 时间:
2016-03-08 12:00:17
阅读次数:
135
对于双向链表,个人推荐使用带头结点尾结点的方式来处理会比较方便。我在《C语言实现双向非循环链表(不带头结点)的节点插入》中详细实现了在不带头结点的情况下的插入。这次我们将会来在使用头结点尾结点的情况下在任意的位置插入元素。代码上传至 https://github.com/chenyufeng1991/InsertNodeDoubleLinkedList_HeadNode 。核心代码如下://插入一...
分类:
编程语言 时间:
2016-03-04 16:30:20
阅读次数:
210
我在之前一篇博客《C语言实现非循环双链表节点的删除(不带头结点)》中详细讲解了不含头尾节点的双链表中删除一个节点,处理过程还是稍显麻烦。自从我们学习使用头尾节点来处理双链表后,删除过程就非常方便。代码上传至 https://github.com/chenyufeng1991/DeleteNodeDoubleLinkedList_HeadList 。核心代码如下://删除pos位置的节点
int D...
分类:
编程语言 时间:
2016-03-04 14:37:14
阅读次数:
141
我在前面两篇博客《经典算法学习——单链表(不带头结点)实现冒泡排序》《经典算法学习——单链表实现冒泡排序(带头结点)》中详细描述了分别使用带头结点和不带头结点的单链表实现了冒泡排序,让我们对单链表和冒泡排序有了理性的认识。今天我们将会来使用不带头结点的非循环双向链表来实现冒泡排序,在处理过程中,这种冒泡比前面两种更为简单高效。代码上传至 https://github.com/chenyufeng1...
分类:
编程语言 时间:
2016-03-03 21:24:42
阅读次数:
180
不带头结点的非循环双链表在删除节点的时候比价麻烦,因为同时要维护prior和next两个指针。在处理第一个节点和最后一个节点的时候都要分别考虑,同时也需要考虑节点数量为1的情况。删除情况分为下面两类:(1)删除pos位置的节点;(2)判断x是否在链表中,若存在则删除;代码上传至 https://github.com/chenyufeng1991/DeleteNodeDoubleList 。核心代...
分类:
编程语言 时间:
2016-03-03 17:43:46
阅读次数:
226
在实际使用中,双链表比单链表方便很多,也更为灵活。对于不带头结点的非循环双链表的基本操作,我在《C语言实现双向非循环链表(不带头结点)的基本操作》这篇文章中有详细的实现。今天我们就要用两种不同的方式头插法和尾插法来建立双链表。代码上传至 https://github.com/chenyufeng1991/HeadInsertAndTailInsertDoubleList 。核心代码如下://尾...
分类:
其他好文 时间:
2016-03-03 14:52:45
阅读次数:
160
遇到一个让人迷惑的题目。 以下关于线性表采用链式存储时删除节点运算的描述,正确的是() A.带头结点的线性链表删除结点时,不需要更改头指针。 B.带头结点的线性链表删除第一个结点时,需要更改头指针。 C.不带头结点的线性链表删除结点时,需要更改头指针。 D.不带头结点的线性链表删除第一个结点时,不需
分类:
其他好文 时间:
2016-03-02 22:05:19
阅读次数:
192