
数据结构
arvin_xiaoting
岁月静好~
展开
-
※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十六)
结点: 包括一个数据元素及若干个指向其它子树的分支;例如,A,B,C,D等。在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点。 在C语言中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据;二为下一个结点的地址,即指针域和数据域。原创 2013-09-20 11:29:00 · 55071 阅读 · 0 评论 -
※数据结构※→☆线性表结构(list)☆============双向链表 链式存储结构(list double)(三)
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~原创 2013-09-02 08:16:06 · 54947 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============哈夫曼树 顺序存储结构(tree Huffman sequence)(二十二)
哈夫曼树 (Huffman Tree) 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树(霍夫曼树)又称为最优树. 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。 2、结点的权及带权路原创 2013-10-08 11:19:05 · 54220 阅读 · 1 评论 -
※数据结构※→☆非线性结构(tree)☆============树 顺序存储结构(tree sequence)(十五)
树(tree) 树(tree)是包含n(n>0)个结点的有穷集合,其中:每个元素称为结点(node);有一个特定的结点被称为根结点或树根(root)。除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1 树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的原创 2013-09-23 16:58:07 · 57086 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============树 链式存储结构(tree list)(十七)
树(tree) 树(tree)是包含n(n>0)个结点的有穷集合,其中:每个元素称为结点(node);有一个特定的结点被称为根结点或树根(root)。除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1 树也可以这样定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的原创 2013-09-24 10:56:15 · 56963 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============哈夫曼树 链式存储结构(tree Huffman list)(二十三)
哈夫曼树 (Huffman Tree) 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树(霍夫曼树)又称为最优树. 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路原创 2013-10-10 10:43:42 · 54192 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============树结点 顺序存储结构(tree node sequence)(十四)
结点: 包括一个数据元素及若干个指向其它子树的分支;例如,A,B,C,D等。在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点。 在C语言中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据;二为下一个结点的地址,即指针域和数据域。原创 2013-09-23 13:49:11 · 54386 阅读 · 2 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉树结点 链式存储结构(tree node binary list)(二十)
二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2原创 2013-09-26 11:47:16 · 55131 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉树结点 顺序存储结构(tree node binary sequence)(十八)
二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2原创 2013-09-25 10:48:50 · 55360 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉树 链式存储结构(tree binary list)(二十一)
二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多原创 2013-09-27 10:10:54 · 54955 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉搜索树(二叉查找树) 链式存储结构(tree Binary Search list)(二十五)
二叉搜索树(二叉查找树) 二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。原理 二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二原创 2013-10-25 17:31:51 · 33459 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉搜索树(二叉查找树) 顺序存储结构(tree Binary Search sequence)(二十四)
二叉搜索树(二叉查找树) 二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。原理 二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二原创 2013-10-18 11:52:41 · 35539 阅读 · 0 评论 -
※数据结构※→☆线性表结构(queue)☆============优先循环队列 顺序存储结构(queue priority circular sequence)(十三)
优先队列(priority queue) 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。 例如下图:任务的优先权及执行顺序的关系 优先队列是0原创 2013-09-11 10:32:50 · 36618 阅读 · 0 评论 -
※数据结构※→☆线性表结构(stack)☆============栈 顺序存储结构(stack sequence)(六)
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删原创 2013-09-05 17:03:08 · 55842 阅读 · 0 评论 -
※数据结构※→☆线性表结构(queue)☆============优先队列 顺序存储结构(queue priority sequence)(十一)
优先队列(priority queue) 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。 例如下图:任务的优先权及执行顺序的关系 优先队列是0原创 2013-09-10 16:41:34 · 56631 阅读 · 0 评论 -
※数据结构※→☆线性表结构(list)☆============链表 顺序存储结构(list sequence)(一)
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。 本代码默认list可以容纳的item数目为100原创 2013-08-07 11:10:48 · 58271 阅读 · 8 评论 -
※数据结构※→☆非线性结构(tree)☆============二叉树 顺序存储结构(tree binary sequence)(十九)
二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多原创 2013-09-25 17:12:40 · 57568 阅读 · 0 评论 -
※数据结构※→☆线性表结构(queue)☆============优先队列 链式存储结构(queue priority list)(十二)
优先队列(priority queue) 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。 例如下图:任务的优先权及执行顺序的关系 优先队列是0原创 2013-09-10 17:16:37 · 56249 阅读 · 0 评论 -
※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)
循环队列 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。 条件处理 循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==r原创 2013-09-09 12:11:36 · 57162 阅读 · 0 评论 -
※数据结构※→☆线性表结构(stack)☆============栈 链式存储结构(stack list)(七)
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删原创 2013-09-06 11:06:27 · 54958 阅读 · 0 评论 -
※数据结构※→☆线性表结构(list)☆============双向循环链表 链式存储结构(list circular double)(五)
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。 双向循环链表——在双链表中,将终端结点的下一个(Next)指针域NULL改为指向表头结点或开始结点,表头结点或开始结点的上一个(Pre)指针改为指向终端结点即可。 循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理原创 2013-09-04 10:59:11 · 56256 阅读 · 0 评论 -
※数据结构※→☆线性表结构(list)☆============单向循环链表 链式存储结构(list circular single)(四)
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。 单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。 循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。注意: ①循环链表中没有N原创 2013-09-03 13:47:25 · 56558 阅读 · 0 评论 -
※数据结构※→☆线性表结构(list)☆============单向链表 链式存储结构(list single)(二)
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指列表中的下一个结点; 列表是由结点构成,由head指针指向第一个成为表头的结点而终止于最后一个指向nuLL的指针;原创 2013-08-30 03:14:41 · 57906 阅读 · 1 评论 -
※数据结构※→☆线性表结构(queue)☆============队列 链式存储结构(queue list)(九)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FI原创 2013-09-09 10:22:35 · 55483 阅读 · 0 评论 -
※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)
顺序存储结构 在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构. 顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储结构为顺序存储结构,通常顺序存储结构是借助于计算机程序设计语言(例如c/c++)的数组来描述的。原创 2013-09-06 17:05:22 · 57537 阅读 · 0 评论 -
※数据结构※→☆非线性结构(tree)☆============AVL树/自平衡二叉查找树(AVL树/自平衡二叉查) 顺序存储结构(tree AVL sequence)(二十五)
AVL树/自平衡二叉查找树 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他们在1962年的论原创 2013-12-27 15:08:46 · 15207 阅读 · 0 评论