数据结构
okkwen
这个作者很懒,什么都没留下…
展开
-
数组
一.数组Array数组的存储在计算机内存中是一片连续的区域。而且数组中每一项所占内存的大小是一定的。因此,我们只需要知道数组第一项所处的位置,就能简单的知道其他任何项所在的位置,而不需要依次去查找。所以数组在知道索引时的访问是很快的。二.未排序数组的插入对于未排序的数组,当我们要插入一个新的值时,我们要改变数组的长度,即在数组末尾加一个新的项,然后将值存入。所以转载 2013-05-25 22:35:22 · 330 阅读 · 0 评论 -
栈和队列
一、栈 限定仅在表尾进行插入或删除操作的线性表。因此,对于栈来说,表尾端称为栈顶(top),相应地,表头端称为栈底(bottom)。 栈最大的特点是“后进先出”,LIFO结构。 栈的表示: 顺序栈,即栈的存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在原创 2013-05-26 17:21:57 · 435 阅读 · 0 评论 -
树
一、树的定义树(tree)是包含n(n>0)个结点的有穷集合,其中:(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的结合T1,T2,……Tm-1,其中每一个集合Ti(1空集合也是树,称为空树。空树中没有结点。二、树的术语节点的度:一个节转载 2013-05-26 19:20:35 · 354 阅读 · 0 评论 -
堆
一、概述 堆数据结构是一种数组对象,但它可以被视为一棵完全二叉树。它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆),每个结点与数组中的存放位置对应。树的根为A[1],给定了某个节点的下标i,其父节点Parent(i)、左儿子Left(i)和右儿子Right(i)的下标如下所示: Parent(i) = return ((int)(i/2))原创 2013-05-26 20:16:17 · 335 阅读 · 0 评论 -
链表
一.简介链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。由于不必按顺序存储,链表在插入的时候可以达到O(原创 2013-05-25 22:13:23 · 369 阅读 · 0 评论 -
霍夫曼树
霍夫曼树: 把带权路径长度最小的二叉树称为霍夫曼树或者最优二叉树。霍夫曼算法: 对应于霍夫曼树的算法也叫做霍夫曼算法。此算法的思想是: (1)设给定的一组权值为{W1,W2,W3,……Wn},据此生成森林F={T1,T2,T3,……Tn},F 中的每棵二叉树只有一个带权为Wi的根节点(i=1,2,……n)。 (2)在F中选取两棵根节点原创 2013-05-26 20:29:45 · 518 阅读 · 0 评论