
数据结构
文章平均质量分 82
baimeng5720
知行合一
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构-查找】次优排序树
当一列数中的查找概率各不相等的时候就需要利用次优排序来减少查找的次数,而不是利用折半查找。所以这个方法的一个前提也是说必须是有序序列,但是这个序列的每个值得查找概率不同。 代码: 代码是拷贝的别人的。。。。。。。所以有些地方还不是很理解。。 ----------------------------------------------------------------------------翻译 2015-03-25 09:26:34 · 720 阅读 · 0 评论 -
【数据结构-图】图的建立以及广度优先遍历算法
本文利用邻接表的方法将图进行了表示,并且利用广度优先遍历方法对图进行遍历 下面是一个图的示例: 代码如下: #include using namespace std; typedef int VexType; typedef struct Arcnode{ VexType data; struct Arcnode *nextarc; }ArcNode; typedef原创 2015-04-16 20:04:56 · 763 阅读 · 0 评论 -
【数据结构-排序问题】各种排序哦
这两天一直总结排序问题,然后话不多啦,直接上代码 最主要的是要学会快速排序和冒泡排序,其它排序要熟练即可。 #include #include #define DataType int void InsertSort(DataType A[], DataType len); void BiInsertSort(DataType A[], DataType len); void Bu原创 2015-04-11 10:00:21 · 958 阅读 · 0 评论 -
【数据结构-图】判断图是否有环
1.首先判断无向图 方法:1首先求出每个顶点的度 2将图中顶点度 3.将队列中的点x出列,然后删除其他顶点中与x有关联的顶点的这个边,并且将度数减一;将这个顶点从adjlist线性表中删除 4.重复2 5.当队列中元素都出来后,如果adjlist不为0,就说明有环,否则没有环。 代码: #原创 2015-04-20 21:36:15 · 3078 阅读 · 0 评论 -
【数据结构-排序】大根堆的建立
粗略的写了一下大根堆的建立以及输出排序数据的过程,然后用图示来表示结果 程序如下: #include using namespace std; //节点声明,数据域、左孩子指针、右孩子指针 typedef struct BiTNode{ int data; int t;//这个是用来表示这是第几个结点 struct BiTNode *lchild, *rchild; }BiTNo原创 2015-04-09 21:43:40 · 4185 阅读 · 0 评论 -
【数据结构-查找】哈希表的应用
#include #include #define HASH_LEN 50 //哈希表的长度 #define M 47 //随机数 #define NAME_NO 30 //人名的个数 typedef转载 2015-04-01 14:25:36 · 603 阅读 · 0 评论 -
【数据结构-查找】有序表的查找-折半查找
算法流程: 对一个从小到大的序列来说。。。。。。。。。。。。 1.置查找范围初态:low=1,high=n; 2.对当前的查找范围进行以下处理 2.1求中项mid=(low+high)/2 2.2将指定值k与中项的关键字值进行比较,如果等于则返回中项序号mid;若mid 2.3重复2.2直至查找到返回mid或者当low>high时候返回0 #include原创 2015-03-24 20:48:52 · 1333 阅读 · 0 评论 -
【数据结构】二叉树的一个应用,哈夫曼编码的生成
1.哈夫曼树只有结点为0.或者结点为2的值。所以如果叶子结点为n的话,那么整个哈夫曼树的所有结点个数为2n-1;因为结点为2的结点个数n0=n2+1;所以总数n=n0+n2=2n0-1; 过程:由已知的n个权值形成哈夫曼树的初态,即在数组ht[]的前n项中填入相应的权值。 建立哈夫曼树。依次将数组ht[]中的第n+1项到第m项作为当前项,并进行以下处理:原创 2015-03-24 09:27:09 · 1627 阅读 · 0 评论 -
【数据结构】查找-顺序查找
结构体类型 struct Rec { int k; } Rec[n+1],为了使得每个值对应的下标相同,所以设置大小为n+1,Rec[0]的内容接下来说明 一般利用倒序查找方法从最后一个值向前查找这样可以简化函数步骤 程序如下: #include #include typedef int Datatype; struct Rec { Datatype key;原创 2015-03-24 19:39:15 · 527 阅读 · 0 评论 -
AVL树的旋转操作
#ifndef __AVL_TREE_H__ #define __AVL_TREE_H__ #include "../../bstree/src/bstree.h" templatetypename T> class CAVLTree : public CBSTreeT> { private: CBTNodeT>* Insert(const T &data, CBTNodeT> *p)转载 2015-03-30 10:45:33 · 440 阅读 · 0 评论 -
BST二叉排序树的建立以及应用
二叉排序树又叫二叉查找树,英文名称是:Binary Sort Tree. BST的定义就不详细说了,我用一句话概括:左 。 根据这个原理,我们可以推断:BST的中序遍历必定是严格递增的。 在建立一个BST之前,大家可以做一下这个题目(很简单的): 已知,某树的先序遍历为:4, 2, 1 ,0, 3, 5, 9, 7, 6, 8. 中序遍历为: 0,原创 2015-03-22 21:08:39 · 959 阅读 · 0 评论 -
二叉树的建立与先序,后序,中序输出
假设二叉树为: a b c d e 因为程序中要知道叶子结点(终点),所以要讲上面的二叉树变成扩展二叉树(把叶子结点的孩子补成#,用作标原创 2015-03-20 22:05:39 · 1230 阅读 · 0 评论 -
栈和链栈的实现
1、栈的实现 //创建一个简单的栈 #include #include typedef struct stack { int* data; int size; int head; }STACK; void initialize(STACK*); void add(STACK*); int delete_s(STACK*); void initialize(STACK* s原创 2015-03-19 22:06:55 · 517 阅读 · 0 评论 -
循环队列的建立
//创建一个循环队列,一般参数最好是利用指针,因为把一个对象作为参数传递的话占用空间太大,而且操作的是副本,原队列不能进行操作。 #include #include #define maxsize 5 typedef struct queue { int data[maxsize]; int front; int rear; }QUEUE; void initialize(QU原创 2015-03-19 14:52:13 · 878 阅读 · 0 评论 -
【数据结构-链表】头插法和尾插法建立单链表
//尾插法比较常用,尾插法需要利用一个头结点。 //头插法不需要头结点,但是需要一个空指针。 #include #include typedef struct node { char data; struct node *next; }LinkList; LinkList* Create_Front();//头插法建立单链表 LinkList* Create_End();//尾原创 2015-03-19 12:47:44 · 1641 阅读 · 0 评论