
栈 队列 数 图基础 C/C++
文章平均质量分 80
qq_34287501
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
展开
-
数据结构——二叉排序树的基本操作(BST)
简单实现了:二叉排序树查找、插入、删除、建立算法的思想及程序实现删除时应注意分以下三种情况:1.如果删除的节点没有左子树,直接把把右子树提上去;2.如果左子树没有右子树,直接把左子树提上去;3.其他情况就直接找左子树的最大的叶子节点提上去;以下代码借鉴:挑战程序设计代码:#include#define N 109using namespace std;struc原创 2017-05-25 00:22:59 · 2489 阅读 · 0 评论 -
数据结构——常用的内部排序算法
借鉴博客:http://blog.youkuaiyun.com/hguisu/article/details/7776068目的:1.掌握常见的内部排序算法的思想及其适用条件。2.掌握常见的内部排序算法的程序实现。内容:输入一组关键字序列分别实现下列排序:(1) 实现简单选择排序、直接插入排序和冒泡排序。(2) 实现希尔排序算法。(3) 实现快速排原创 2017-06-03 10:58:02 · 2090 阅读 · 0 评论 -
数据结构——哈希表的生成
目的: 掌握哈希存储结构的思想,能选择合适的哈希函数,实现不同冲突处理方法的哈希表的查找、建立。内容:(1)设计哈希函数及处理冲突的方法;(2)键盘输入数据,利用设计的哈希函数及线性探测法生成哈希表;(3)用同样的输入数据和哈希函数,用链地址法处理冲突生成哈希表;(4)在主函数中设计一个简单的菜单,分别调试上述算法;(5)分析两种方法的平均查找长度。借鉴大牛原创 2017-06-01 14:56:06 · 2792 阅读 · 0 评论 -
数据结构——简单的toposort、dijkstra、Prim
最小生成树、拓扑排序和最短路径实验内容:(1)键盘输入数据,分别建立一个有向图的邻接表和一个无向图的邻接矩阵。(2)输出该邻接表和邻接矩阵。(3)以有向图的邻接表为基础输出它的拓扑排序序列。(4)以无向图的邻接矩阵为基础实现最小生成树的PRIM算法。(5)以无向图的邻接矩阵为基础实现Dijkstra算法输出单源点到其它顶点的最短路径。(6)在主函数中设计一个简单的菜原创 2017-05-18 21:37:30 · 667 阅读 · 1 评论 -
数据结构——图的遍历和存储
可能本人比较懒,图的邻接表用到了C++STL里面的vector,不过思路是一样的代码:#include#define N 1009using namespace std;typedef pair P;vector mp[N], mp1[N];int n, m, mm, nn;void menu(){ printf("\t\t1.建图\n"); printf原创 2017-05-17 12:47:38 · 496 阅读 · 0 评论 -
数据结构——哈夫曼编码
哈夫曼树的典型例子:(1)修理牧场:农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木头的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费2原创 2017-05-17 12:38:24 · 1881 阅读 · 0 评论 -
数据结构——二叉树的基本操作
二叉树的非递归遍历用到了栈和队列,这里为了方便,当然也是为了代码尽可能短和提高效率,用到了C++STL里面的栈和队列,不感觉麻烦的,也可以自己手写栈和队列栈:http://blog.youkuaiyun.com/qq_34287501/article/details/72368962队列:http://blog.youkuaiyun.com/qq_34287501/article/details/72370710原创 2017-05-17 12:32:56 · 395 阅读 · 0 评论 -
数据结构——队列的基本操作
循环队列:#include#define N 5 //为了测试是否能循环,开的比较小using namespace std;typedef int QElemTyp;bool f;struct SqQueue{ QElemTyp *base; int front; int rear;};void init(SqQueue &q){ q.b原创 2017-05-17 12:25:28 · 839 阅读 · 0 评论 -
数据结构——栈的基本操作
顺序栈:#include#define MAX 100 //栈的最大值using namespace std;typedef int SElemType;struct SqStack{ SElemType *base; SElemType *top; int stacksize;};void menu(){ printf("\t1 初始化\n"原创 2017-05-17 12:11:39 · 610 阅读 · 0 评论 -
数据结构——链表的基本操作
怎么说呢? 这个代码是好久之前学链表时写的,在codeblocks上编译通过了,以前测试过了,现在没测试就直接复制到上面,有什么问题欢迎指正,O(∩_∩)O谢谢具体代码如下:#include#define N 1009using namespace std;typedef struct Node{ int data; struct Node *next原创 2017-05-15 21:39:31 · 1143 阅读 · 0 评论 -
数据结构——顺序表的基本操作
一个月之前写的,没有及时分享,现在拿来分享下,希望对学数据结构的小伙伴有所帮助,下面代码已经用codeblocks测试过了,就是链表的基本操作具体代码如下:#include#define N 2000009#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0using namespace std;typedef lo原创 2017-05-08 23:44:41 · 1754 阅读 · 0 评论 -
数据结构——课程设计之~安排教学计划
1. 问题描述大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两个学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。要求实现的基本功能如下:(1)录入课程目录。(2)可以编原创 2017-06-29 17:19:47 · 13266 阅读 · 20 评论