基础数据结构
v_xchen_v
这个作者很懒,什么都没留下…
展开
-
B树和B+树
B树,又称B-树,它是一种平衡的多叉树。一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:1、根结点至少有两个子女;2、每个非根节点所包含的关键字个数 j 满足:┌m/2┐ - 1 3、除根结点以外的所有结点(不包括叶子结点)的度数正好是关键字总数加1,故内部子树个数 k 满足:┌m/2┐ 4、所有原创 2016-03-30 15:18:48 · 510 阅读 · 0 评论 -
顺序表的C++实现
顺序表,即顺序存储结构的线性表,以结点存储位置的连续性(前后性),来表示结点的前驱后继关系。在计算机中以数组的形式保存,表中的元素依次存储在计算机内存中的一组连续的存储单元中。原创 2015-08-06 14:59:38 · 602 阅读 · 0 评论 -
链表
线性表是指逻辑结构上为,首结点只有后继结点,尾结点只有前驱结点,其他每个结点只有一个前驱结点和一个后序元素的n个结点的序列。按照存储结构的不同,分为顺序表(即顺序存储结构的线性表)和链表(即链式存储结构的线性表)。原创 2015-08-06 11:19:57 · 482 阅读 · 0 评论 -
基本排序算法示例
冒泡排序/*冒泡排序*//*冒泡排序思想: * 1)对数组中各数据,依次比较相邻两个元素的大小 * 2)如果前面的数据大于后面的数据,交换这两个数据,经过一轮的多次比较排序后,就可以把最小的数据排好 * 3)然后让剩下的数据逐次进行比较 * */#include "iostream"using namespace std;#define N 15void bubbleSort原创 2016-07-21 22:35:19 · 424 阅读 · 0 评论 -
栈和队列(用C++实现栈和队列)
栈是一种后进先出的线型结构,C++实现栈的代码如下:#include using namespace std;#define MAXLEN 50typedef struct{ char key[10]; char name[20]; int age;}Data;typedef struct{ Data nodeData[MAXLEN+1]; int top;}St原创 2016-06-17 21:36:17 · 3941 阅读 · 0 评论 -
线型表(C++实现顺序表和单链表)
链表,即链式存储结构的线性表。链表通过指针来实现结点的前驱后继关系,因此每个结点相比顺序表的结点多了指针结构,由于不再用地址的前后关系表示结点间的前驱后继关系,从而不再需要连续的存储单元。链表的代码实现 by C++原创 2015-08-06 18:11:39 · 713 阅读 · 0 评论 -
链表基础
出自:http://www.jikexueyuan.com/course/2193_4.html?ss=1摘一下关键知识点,自己用来温习。单链表有两个属性1)Value,值2)next,指向一下个链表节点的指针双链表会附加一个属性pre,指向前一个链表节点的指针链表反转:O(n)复杂度1)非递归算法三个指针:p,当前节点next,下一节点转载 2016-03-18 16:02:16 · 541 阅读 · 0 评论 -
图的存储与遍历
图的存储方式1)邻接矩阵:图的邻接矩阵表示是唯一的,且无向图的邻接矩阵一定是一个对称矩阵2)邻接表:是图的链式存储结构3)十字链表:有向图的另一种链式存储结构4)邻接多重表:无向图的链式存储方式图的深度遍历和广度遍历DFS深度遍历类似于树的先根遍历,是树的先根遍历的推广。假设初始状态是图中所有顶点未曾被访问,则深度遍历可从图中 某个顶点v出发,访问此顶点,然原创 2016-03-30 17:03:59 · 990 阅读 · 0 评论 -
哈夫曼树、平衡二叉树
给定n个带权值的叶子节点,构造称一棵二叉树,带权路径长度达到最小的二叉树,称为最优二叉树,也称为哈夫曼树。构造方法:将这n个叶子节点看作n个森林在森林中选出两个权值最小的节点作为左右子树合并成一个新的二叉树,从森林中删除选取的两棵树并将新树加入森林,重复,直至森林中只剩一棵树。平衡二叉树,又称AVL树,它是一棵空树或树中每一个节点的左右子树的高度差的绝对值都不超过1.原创 2016-03-30 16:46:43 · 1425 阅读 · 0 评论