算法与数据结构
文章平均质量分 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 · 3185 阅读 · 0 评论 -
散列表 散列查找
1.散列查找的优点 查找数据时,不是通过一些列与关键字的比较,而是通过散列函数直接计算得到关键字保存的位置,然后直接读取即可。2.散列技术的关键是:散列函数的选择和冲突解决方法。 1)散列函数选择标准:尽量选择能减少冲突的散列函数; 2)常见的冲突解决方法有:直接定址法,平方取中法,链接法等。3.散列表结构和操作定义HashSearch.h#includ原创 2013-07-19 11:27:39 · 951 阅读 · 0 评论 -
索引表 索引查找
1.索引查找的关键是主表和索引表的设计2.索引表的优缺点 1)优点:通过索引查找可提高查找的效率; 2)缺点:需要占用一定磁盘空间,另外,索引减慢了数据插入和删除的速度(最简单解决方法:在主表中的每个子表后都预留空虚位置)。3.索引表结构和操作定义IndexSearch.h#include#define INDEXTABLE_LEN 3 //索引表的长度#define原创 2013-07-19 11:14:42 · 1388 阅读 · 0 评论 -
顺序查找 折半查找 二叉排序树
1.顺序查找,折半查找,二叉排序树操作定义SeqSearch.h#include#define ARRAYLEN 8int 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 · 3764 阅读 · 2 评论 -
图 邻接矩阵 邻接表
1.图常用的两种存储结构:邻接矩阵和邻接表。2. 邻接矩阵结构和操作定义SeqQueue.h//功能:邻接矩阵图的广度遍历用到的队列结构体#define QUEUE_MAXSIZE 256typedef struct{ int Data[QUEUE_MAXSIZE]; //QUEUE_MAXSIZE在GraphTest.cpp文件中定义 int head; int tail;原创 2013-07-16 17:24:13 · 1330 阅读 · 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 · 1280 阅读 · 0 评论 -
二叉树
1. 链式二叉树结构和操作定义ChainBinTree.h//功能:二叉树结构体typedef struct ChainTree{ DATA data; struct ChainTree *left; struct ChainTree *right;}ChainBinTree;/*---------------------二叉树所有操作原型声明 start ---------原创 2013-07-14 17:37:28 · 811 阅读 · 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 · 766 阅读 · 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 · 1191 阅读 · 0 评论 -
线性结构 链表
1. 链表结构和操作定义ChainList.h#include#include#includetypedef struct Node{ DATA data; struct Node *next;}ChainListType;/*--------------------------函数原型声明 start----------------------*/ChainListT原创 2013-07-10 20:31:37 · 687 阅读 · 0 评论 -
线性结构:顺序表
1. 顺序表结构和操作定义SeqList.h#include#include#includeusing namespace std;#define MAXSIZE 100//定义顺序表结构体typedef struct{ DATA ListData[MAXSIZE + 1]; //保存顺序表的数组 int ListLen;}SeqListType;//定义顺序表原创 2013-07-10 17:41:25 · 752 阅读 · 0 评论 -
B树、B-树、B+树、B*树详解
B树、B-树、B+树、B*树详解B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与转载 2013-08-05 16:44:30 · 534 阅读 · 0 评论