数据结构
文章平均质量分 66
xiaoshi935
没有人都拯救你,除非你自己
展开
-
将La和Lb合并为一个新的线性表Lc的几种结构的归纳
在数据结构线性表一章中,提出了三种方法。1、总的方法,并没有涉及具体的存储类型。此处给出了具体的思想。void MergeList(List La, List Lb, List &Lc) { //已知线性表La和Lb中的数据元素按值非递减排列 //归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列 InitList(Lc); int ai, bj; int原创 2009-08-23 16:08:00 · 11397 阅读 · 2 评论 -
赫夫曼编码求解程序
折腾了好久,终于搞定了Huffman编码的问题。千里之堤溃于蚁穴。虽然我这不是千里之堤,但是确实是溃于蚁穴。代码:#include #include #include using namespace std;#define MAXSIZE 100typedef struct { int weight; int parent, lchild, rchil原创 2009-09-10 23:16:00 · 783 阅读 · 2 评论 -
深度优先遍历图
深度优先搜索(Depth_First Search)遍历类似于树的先根遍历,是树的先根遍历的推广。运用邻接矩阵存储的数据结构写出的深度优先遍历算法如下:#include #include using namespace std; #define INFINITY 32767#define MAX_VEX 50 //最大顶点个数#define OK 1#def原创 2009-09-10 23:25:00 · 4830 阅读 · 2 评论 -
线索二叉树
若在某程序中所用二叉树需经常遍历或查找结点在遍历所得线性序列中的前驱和后继,则应采用线索链表作存储结构。 // 二叉树的二叉线索存储表示typedef enum PointerTag {Link, Thread }; //Link == 0:指针,Thread == 1:线索typedef struct BiThrNode { TElemType data; struct原创 2009-08-31 10:50:00 · 391 阅读 · 0 评论 -
遍历二叉树的递归和非递归算法
递归算法很简单。代码如下:Status PreOrderTraverse(BiTree T) { //先序遍历:根、左、右 if(T) { printf("%d",T->data); PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); } return OK;} //PreOrderTrav原创 2009-08-30 22:21:00 · 1328 阅读 · 2 评论 -
建立二叉树并且访问二叉树示例
采用先序建立二叉树的递归方式和中序遍历二叉树的非递归方式进行程序的设计。代码如下:#include #include #include #define STACK_INT_SIZE 100 //存储空间初始分配量#define STACKINCREMENT 10 //存储空间分配增量#define OK 1#define ERROR 0#define TRUE原创 2009-08-30 20:02:00 · 784 阅读 · 0 评论 -
遍历二叉树
遍历二叉树:如何按某条搜索路径寻访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。访问的含义很广:可以使对结点作各种处理,如输出结点信息等。三种遍历:a、先序遍历 根左右b、中序遍历 左根右c、后序遍历 左右根 在遍历二叉树之前一般需要先进行建立相应的二叉链表。下面算法为建立二叉链表的递归算法:Status CreateBiTree(BiTree &T)原创 2009-08-28 10:07:00 · 426 阅读 · 0 评论 -
二叉树
1)二叉树是另外一种树型结构,它的特点是每个结点至多只有两颗子树,并且,二叉树的子树有左右之分,其次序不能任意颠倒。2)二叉树的存储结构一、顺序存储结构#define MAX_TREE_SIZE 100 //二叉树的最大结点数typedef TElemType SqBiTree[MAX_TREE_SIZE]; //0号单元存储根结点SqBiTree bt;原创 2009-08-28 10:05:00 · 347 阅读 · 0 评论 -
树的基本术语
树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树称为结点的度。度为0的结点称为叶子。树的度是树内各结点的度的最大值。结点的子树的根称为该结点的孩子,相应地,该结点称为孩子的双亲。树中结点的最大层次称为树的深度或高度。原创 2009-08-28 10:00:00 · 394 阅读 · 0 评论 -
数组的顺序表示与实现
以二维数组为例。有两种存储方式:一种是以列序为主;一种是以行序为主。由此,对于数组,一旦规定了它的维数和各维的长度,便可为它分配存储空间。反之,只要给出一组下标便可求得相应数组元素的存储位置。数组的顺序存储表示和实现:#include #define MAX_ARRAY_DIM 8typedef struct { ElemType *base; //数组元素基址,由Ini原创 2009-08-25 15:51:00 · 637 阅读 · 1 评论 -
串
1、串类型的定义串(或字符串)是由零个或多个字符组成的有限序列,一般记为 s=ab...c。其中s为串名,用单引号括起来的字符序列是串的值。 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象约束为字符集。然而,串的基本操作和线性表有很大差别。在线性表中,大多以“单个元素”作为操作对象;而在串的基本操作中,通常以“串的整体”作为操作对象。 串赋值StrAssign、串原创 2009-08-24 21:12:00 · 540 阅读 · 0 评论 -
循环队列——队列的顺序表示和实现
上一篇说到队列的链式表示和实现,此次叙述队列的顺序表示和实现且是循环队列。 根据分析可知,在C语言中不能用动态分配的一维数组来实现循环队列。如果用户的应用程序中设有循环队列,则必须为它设定一个最大队列长度;若用户无法预知所用队列的最大程度,则宜采用链式存储。 #define MAXQSIZE 100 //队列最大长度typedef struct { QElemType原创 2009-08-24 19:15:00 · 1061 阅读 · 0 评论 -
队列的链式存储结构
有关队列的链式存储结构需要特地说明一下。此问题一度有一些困扰。在论坛上提问了之后得到了很多人的热心回答,在此感谢你们。typedef struct QNode { int data; struct QNode *next;}QNode, *QueuePtr; typedef struct { QueuePtr front; QueuePtr rear;}Li原创 2009-08-24 18:34:00 · 862 阅读 · 0 评论 -
栈的应用之hanoi问题
在高级语言编制的程序中,调用函数与被调用函数之间的链接和信息交换必须通过栈例进行。当在一个函数的运行期间调用另一个函数时,在运行该被调用函数之前,需先完成三件事:将所有的实在参数、返回地址等信息传递给被调用函数保存; 为被调用函数的局部变量分配存储区; 将控制转移到被调用函数的入口。 从被调用函数返回调用函数之前,应该完成:保存被调函数的计算结果; 释放被调原创 2009-08-24 16:40:00 · 446 阅读 · 0 评论 -
栈的应用之行编辑程序
完整代码如下:#include #include #include #include #define STACK_INIT_SIZE 100#define STACKINCREMENT 10 //存储空间分配增量#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;ty原创 2009-08-24 16:20:00 · 606 阅读 · 0 评论 -
栈的应用之括号匹配
首先要感谢daniel(mstlq)对于我的完整程序的排查。非常非常感谢!#include #include #include #include #define STACK_INIT_SIZE 100#define STACKINCREMENT 10 //存储空间分配增量#define OK 1#define ERROR 0#define OVERFLOW原创 2009-08-23 20:56:00 · 696 阅读 · 0 评论 -
栈的应用之数制转换
完整的程序代码如下:#include #include #include #define OK 1#define ERROR -1#define FALSE 0#define TRUE 1#define OVERFLOW -2#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef i原创 2009-08-23 20:52:00 · 658 阅读 · 0 评论 -
最小生成树的prim算法代码
根据课本的prim算法改的,加了一个创建图的函数和minimum函数。代码如下:#include #include using namespace std;ifstream fin("prim.txt");#define MAX_VERTEX_NUM 20#define ERROR -1#define INFINITY 0x7fff//图的邻接矩阵存原创 2009-09-13 07:54:00 · 2154 阅读 · 3 评论