![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 75
西电小西
这个作者很懒,什么都没留下…
展开
-
结构体的四种定义方式及其区别
一、结构体的三种定义方式及其区别 1. 结构体类型:利用typedef关键字 typedef struct{ int ListData[100]; int ListLen; }SeqListType; 2. 结构体标签 struct SeqListType{ int ListData[100]; int ListLen; };3. 结构体变量 struct{ int L原创 2013-07-10 16:35:02 · 3152 阅读 · 0 评论 -
散列表 散列查找
1.散列查找的优点 查找数据时,不是通过一些列与关键字的比较,而是通过散列函数直接计算得到关键字保存的位置,然后直接读取即可。 2.散列技术的关键是:散列函数的选择和冲突解决方法。 1)散列函数选择标准:尽量选择能减少冲突的散列函数; 2)常见的冲突解决方法有:直接定址法,平方取中法,链接法等。 3.散列表结构和操作定义 HashSearch.h #includ原创 2013-07-19 11:27:39 · 938 阅读 · 0 评论 -
索引表 索引查找
1.索引查找的关键是主表和索引表的设计 2.索引表的优缺点 1)优点:通过索引查找可提高查找的效率; 2)缺点:需要占用一定磁盘空间,另外,索引减慢了数据插入和删除的速度(最简单解决方法:在主表中的每个子表后都预留空虚位置)。 3.索引表结构和操作定义 IndexSearch.h #include #define INDEXTABLE_LEN 3 //索引表的长度 #define原创 2013-07-19 11:14:42 · 1371 阅读 · 0 评论 -
顺序查找 折半查找 二叉排序树
1.顺序查找,折半查找,二叉排序树操作定义 SeqSearch.h #include #define ARRAYLEN 8 int source[]={69, 65, 90, 37, 92, 6, 28, 54}; //静态查找表 int source1[ARRAYLEN + 1]={69, 65, 90, 37, 92, 6, 28, 54}; //改进顺序查找算法使用的静态查找表 i原创 2013-07-18 21:13:13 · 3756 阅读 · 2 评论 -
图 邻接矩阵 邻接表
1.图常用的两种存储结构:邻接矩阵和邻接表。 2. 邻接矩阵结构和操作定义 SeqQueue.h //功能:邻接矩阵图的广度遍历用到的队列结构体 #define QUEUE_MAXSIZE 256 typedef struct{ int Data[QUEUE_MAXSIZE]; //QUEUE_MAXSIZE在GraphTest.cpp文件中定义 int head; int tail;原创 2013-07-16 17:24:13 · 1320 阅读 · 0 评论 -
哈夫曼树
1. 哈夫曼树结构和操作定义 HuffmanTree.h //功能:霍夫曼树结构体 typedef struct{ int weight; //权值 int parent; //父节点序号 int left; //左子树序号 int right; //右子树序号 }HuffmanTree; typedef char *HuffmanCode; //Huffman编码指原创 2013-07-15 16:55:10 · 1273 阅读 · 0 评论 -
二叉树
1. 链式二叉树结构和操作定义 ChainBinTree.h //功能:二叉树结构体 typedef struct ChainTree{ DATA data; struct ChainTree *left; struct ChainTree *right; }ChainBinTree; /*---------------------二叉树所有操作原型声明 start ---------原创 2013-07-14 17:37:28 · 804 阅读 · 0 评论 -
线索二叉树
1. 线索二叉树结构和操作定义 ThreadBinTree.h //功能:线索标志域所有值 typedef enum{ SubTree, Thread }NodeFlag; //功能:线索二叉树结构体 typedef struct ThreadTree{ DATA data; NodeFlag lflag; NodeFlag rflag; struct ThreadTree *l原创 2013-07-14 22:22:10 · 761 阅读 · 0 评论 -
线性结构 循环队列
一、循环队列与普通队列 1. 空判断条件相同:q->head == q->tail; 2. 满判断条件不同 1)循环队列:q->head == (q->tail + 1)%MAXSIZE; 2)普通队列:q->tail == MAXSIZE; 3. head与tail取值方式不同 1)循环队列:q->head = (q->head + 1)%MAXSIZE; q->tail =原创 2013-07-11 16:02:30 · 1178 阅读 · 0 评论 -
线性结构 链表
1. 链表结构和操作定义 ChainList.h #include #include #include typedef struct Node{ DATA data; struct Node *next; }ChainListType; /*--------------------------函数原型声明 start----------------------*/ ChainListT原创 2013-07-10 20:31:37 · 679 阅读 · 0 评论 -
线性结构:顺序表
1. 顺序表结构和操作定义 SeqList.h #include #include #include using namespace std; #define MAXSIZE 100 //定义顺序表结构体 typedef struct { DATA ListData[MAXSIZE + 1]; //保存顺序表的数组 int ListLen; }SeqListType; //定义顺序表原创 2013-07-10 17:41:25 · 739 阅读 · 0 评论 -
B树、B-树、B+树、B*树详解
B树、B-树、B+树、B*树详解 B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与转载 2013-08-05 16:44:30 · 529 阅读 · 0 评论