>数据结构<
文章平均质量分 61
DT2131
Rage, rage against the dying of the light.Do not go gentle into that good night.
展开
-
数据结构 第一章 概论 札记
题集:1.分析以下程序的时间复杂度x=2;while(xAnswer : 注意到构成 2 的幂,故 O(logN)2数据结构中,数据的最小单位是:_______Answer:数据的最小单位是数据项,即数据表中的一小格数据的基本单位是数据元素(记录),即数据表中的一行3以下与数据的存储结构无关的术语是:A.循环队列 B.链原创 2017-03-13 01:11:16 · 1109 阅读 · 0 评论 -
实验 线性表的有关操作
1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。2、遍历单向链表(显示)。3、把单向链表中元素逆置(不允许申请新的结点空间)。4、在单向链表中删除所有的偶数元素(值为偶数)结点。5、编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。6、利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。7、利用原创 2017-06-13 13:28:02 · 662 阅读 · 0 评论 -
修道士和野人问题
优化版 v1.0i7 6500U 4G内存 2s内可以对 1000 2000 输入建图建图复杂度取决于边数。description:假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数原创 2017-07-07 10:59:22 · 2046 阅读 · 0 评论 -
实验 队列的有关操作
1、用顺序存储来定义循环队列结构。编程实现,初始化队列、判队列为空、出队列、入队列、求队列头部元素等运算,自己填写主函数。2、利用队列打印杨辉三角形。代码:#include using namespace std;const int MAXN=24;typedef struct Cqueue{ int elem[MAXN]; int head,tail;原创 2017-06-13 00:15:54 · 532 阅读 · 0 评论 -
实验 排序的有关操作
给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;按名次列出每个学生的姓名与分数。要求至少使用3种以上的排序方法(必须包含快速排序算法)。代码:#include using namespace std;const int MAXN=8;typedef struct Stu{ in原创 2017-06-20 15:45:54 · 1454 阅读 · 0 评论 -
实验 二叉排序树
掌握二叉排序树的查找、插入、删除、建立算法的思想及程序实现。代码:#include using namespace std;typedef struct Node{ Node *ls,*rs; int val;}Node;typedef struct BSTree{ Node *root; BSTree(){root=NULL;}public:原创 2017-06-20 13:27:26 · 889 阅读 · 0 评论 -
实验 二叉树的基本操作
1、 按先序次序输入二叉树中结点的值(一个字符),利用某个特殊字符(例如`@`)表示空树,生成二叉树的二叉链表存储结构。2、 按先、中、后序递归遍历二叉树,之后结合栈的应用,将中序遍历算法改为非递归算法。3、利用二叉树的递归算法求二叉树的高度 。4、利用二叉树的递归算法求二叉树的叶子个数。5、利用队列实现二叉树的层次遍历。代码:#include using namespa原创 2017-06-13 00:11:54 · 1315 阅读 · 0 评论 -
实验 栈的有关操作
1、用顺序存储定义栈结构。写出这种存储方式下的算法实现,包括:初始化栈、判栈为空、出栈、入栈、求栈顶元素等运算,自己填写主函数。2、利用顺序栈的基本操作,设计算法,实现将任意一个十进制整数转化为R进制整数代码:#include using namespace std;const int MAXN=1e5+10;typedef struct istack{//..........原创 2017-06-13 13:29:21 · 611 阅读 · 0 评论 -
实验 折半查找算法
掌握折半查找算法的思想及程序实现。代码:#include using namespace std;typedef struct BSearch{ int elem[20];public: void ini(){ for(int i=0;i<20;i++) elem[i]=rand()%91; sort(elem,elem+20);原创 2017-06-20 16:01:07 · 1156 阅读 · 0 评论 -
实验 哈希表线性探测再散列
将上面的数据利用长度为15的哈希表存储,输出存储后的哈希表。哈希函数采用key%13,用线性探测再散列解决冲突,设计并实现查找运算。代码:#include using namespace std;const int MAXN=15;typedef struct HashList{ int elem[MAXN],mod; HashList(){ for(原创 2017-06-20 13:49:44 · 2342 阅读 · 0 评论 -
邻接多重表
转自:http://blog.csdn.net/zdp072/article/details/19755675 N 个点 M 条边N 个顶点节点 M 个边节点转载 2017-06-19 22:28:37 · 1090 阅读 · 0 评论 -
多叉哈夫曼树的基本计算
百度百科:哈夫曼树也可以是k叉的,只是在构造k叉哈夫曼树时需要先进行一些调整。构造哈夫曼树的思想是每次选k个权重最小的元素来合成一个新的元素,该元素权重为k个元素权重之和。但是当k大于2时,按照这个步骤做下去可能到最后剩下的元素少于k个。解决这个问题的办法是假设已经有了一棵哈夫曼树(且为一棵满k叉树),则可以计算出其叶节点数目为(k-1)nk+1,式子中的nk表示子节点数目为k的节点数目。翻译 2017-06-19 17:58:45 · 5240 阅读 · 1 评论 -
n节点组成二叉树的个数
转自:n节点组成二叉树的个数可以分析,当n=1时,只有1个根节点,则只能组成1种形态的二叉树,令n个节点可组成的二叉树数量表示为h(n),则h(1)=1; h(0)=0; 当n=2时,1个根节点固定,还有2-1个节点。这一个节点可以分成(1,0),(0,1)两组。即左边放1个,右边放0个;或者左边放0个,右边放1个。即:h(2)=h(0转载 2017-05-16 12:59:38 · 2497 阅读 · 0 评论 -
前缀,中缀表达式,后缀表达式互转
后缀表达式转载 2017-03-27 19:09:38 · 398 阅读 · 0 评论 -
栈相关知识
STL系列之二 stack栈 POJ 1363 判断顺序入栈的出栈序列是否合法 n个元素顺序进栈,共有多少种出栈顺序?翻译 2017-03-21 17:01:20 · 300 阅读 · 0 评论 -
什么是“堆”,"栈","堆栈","队列",它们的区别?
转自:http://jingyan.baidu.com/article/6c67b1d6a09f9a2786bb1e4a.html博主总结: 栈=堆栈(栈的别名)!=堆堆:什么是堆?又该怎么理解呢?①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值;转载 2017-03-11 13:05:51 · 5868 阅读 · 0 评论 -
实验 图的基本操作
1、键盘输入数据,建立一个有向图的邻接表。2、输出该邻接表。3、在有向图的邻接表的基础上计算各顶点的度,并输出。4、以有向图的邻接表为基础实现输出它的拓扑排序序列。5、采用邻接表存储实现有向图的深度优先递归遍历。6、采用邻接表存储实现有向图的广度优先遍历(利用队列实现)。7、编写一个主函数,调试上述算法。代码:#include using namespace st原创 2017-06-13 17:14:16 · 1586 阅读 · 0 评论