前面实现了二叉树的二叉链表表示实现,当用二叉链表作为二叉树的存储结构时,因为每个结点中只有指向其左、右儿子结点的指针,所以从任一结点出发只能直接找到该结点的左、右儿子。在一般情况下靠它无法直接找到该结点在某种遍历序下的前驱和后继结点。如果在每个结点中增加指向其前驱和后继结点的指针,将降低存储空间的效...
分类:
其他好文 时间:
2014-09-30 14:16:39
阅读次数:
215
用十字链表结构写的,根据数据结构书上的描述和自己的理解实现。但理解的不透彻,所以不知道有没有错误。但实验了几个都ok.#include #include using namespace std;//有向图十字链表表示#define MAX_VERTEX_NUM 20typedef struct Ar...
分类:
其他好文 时间:
2014-09-25 17:40:59
阅读次数:
188
链表是一种基础数据结构,它是集合类的抽象数据结构类型中表示数据的合适类型。与数字结构不同之处在于,在链表中插入元素和删除元素都更加方便。定义:链表表示的一列元素,由一系列的节点(Node)构成,是一种递归数据结构。节点是一个能够包含任何类型数据的抽象实体,它所包含的指向节点的应用体现了他在链表中的作...
分类:
其他好文 时间:
2014-09-16 22:04:11
阅读次数:
216
并查集(不相交集合) 文章作者:ktyanny 文章来源:ktyanny 早上早早起来看Kruscal的MST算法,原来要用到不相交集合来实现。拿起《算法导论》看完不相交集合这章,顿然茅塞顿开,终于完成并查集的基础知识的学习。《算法导论》真是牛×× 不相交集合有两种不同的实现,链表表示和带路...
分类:
其他好文 时间:
2014-09-15 00:55:37
阅读次数:
220
链表的题目总体来说细节比较多,因为链表的题目在操作链表的过程中本身有些复杂,所以如果链表作为编程题出现的时候,多数情况下题目本身的思路可能不是很复杂,不要把题目往复杂的方向去思考就好了~这里的链表只是说单向链表,双向链表,跳表。树的链表表示形式不属于这个链表的范畴。1.合并两个有序的链表。额外空.....
分类:
其他好文 时间:
2014-08-26 21:12:36
阅读次数:
280
分别以两个(带头结点的)循环有序链表表示集合A和B,完成这两个集合并集的操作:代码如下:#includetypedef struct LNode { int data ; struct LNode *next ;}LNode , *LinkList ;void union_OL(L...
分类:
其他好文 时间:
2014-07-16 19:26:37
阅读次数:
211
题目来源,待字闺中,原创@陈利人
,欢迎大家继续关注微信公众账号“待字闺中”
原题:两个单链表(singly linked list),每一个节点里面一个0-9的数字,输入就相当于两个大数了。然后返回这两个数的和(一个新list)。这两个输入的list长度相等。 要求是:不用递归;要求算法在最好的情况下,只遍历两个list一次
,最差的情况下两遍
分析:如果链表表示的数是从...
分类:
其他好文 时间:
2014-07-12 23:47:33
阅读次数:
285
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link...
分类:
其他好文 时间:
2014-06-08 15:30:28
阅读次数:
227
图的【十字链表】表示法是一种链式存储结构,可以看成是【邻接表】和【逆邻接表】的组合本文中用到的有向图/************************************************************************有向图的存储:十字链表有向图的十字链表存储结构,是有一...
分类:
其他好文 时间:
2014-06-04 18:13:33
阅读次数:
383
队列是一种先进先出(FIFO)的线性表,他只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为对头(front)。链队列——队列的链式表示和实现
用链表表示的队列简称链队列。一个链队列显然需要两个分别指示对头和队尾的指针才能唯一确定。...
分类:
其他好文 时间:
2014-04-30 14:25:13
阅读次数:
419