数据结构实验
数据结构课后实验
Henu_敖丙
靠近光,追随光,成为光,发散光
展开
-
个人笔记--图的构造及DFS和BFS遍历
图的构造和两种遍历(DFS和BFS)图的构造函数Status LocateVex(MGraph G,VertexType u)//访问无向网图中该顶点所在位置{ int i; for(i=1;i<=G.vexnum;++i) if(G.vexs[i]==u) return i; return 0;}void CreateUDN(MGraph &G)//创建无向网图{ int i,j,k,w; VertexType v1,v2; char tmp; cout&原创 2020-12-17 22:55:33 · 349 阅读 · 0 评论 -
个人笔记--HuffmanTree哈夫曼树(赫夫曼树)及哈夫曼编码
哈夫曼树的构建及哈夫曼编码的生成与转换代码先放这,有时间写注释及解析#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;typedef struct{ int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree;typedef char **HuffmanCode;void HuffmanCout(int *a){ for(int i=原创 2020-11-30 22:59:56 · 2946 阅读 · 2 评论 -
个人笔记--二叉树的链式存储与前、中、后、层序遍历
二叉树创建树:ABC$$DE$G$$F$$$代码先放这,有空写注释#include<bits/stdc++.h>#include<cstdio>using namespace std;#define OK 1#define ERROR 0#define MAX_TREE_SIZE 100#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef char TElemType;typedef bo原创 2020-11-22 00:06:24 · 286 阅读 · 0 评论 -
个人笔记--稀疏矩阵的压缩存储与两种转置方法
目录矩阵稀疏矩阵稀疏矩阵的构建稀疏矩阵的销毁输出稀疏矩阵一般转置快速转置矩阵在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。稀疏矩阵就是在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵,是一种特殊的矩阵。为了节省空间,我们可以对此类矩阵进行压缩存储。所谓压缩存储,是指为每个非零的元分配一个存储空间,对零元不分配空间。稀疏矩阵的构建//定原创 2020-11-05 00:10:58 · 964 阅读 · 0 评论 -
个人笔记--(带头结点)单链表的一些基本操作,头插法尾插法
链表头文件以及结构体定义放最前面了,主函数就不写了,想必理解了以下子函数,主函数不是有手就行?#include<bits/stdc++.h>using namespace std;#define OK 1#define ERROR 0#define Listsize 100typedef int ElemType;typedef int Status;typedef struct LNode{ ElemType data;//数据域 struct LNode *next;原创 2020-10-29 12:29:14 · 1311 阅读 · 0 评论 -
个人笔记--栈的基本操作(初始化,出栈,入栈以及进制转换)
栈的一些基本操作目录栈的一些基本操作栈的概念(新手必看)初始化栈销毁栈清空栈判空栈栈长度取栈顶元素入栈操作出栈操作输出栈进制转换栈的概念(新手必看)栈(stack)又名堆栈,是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作入栈,就是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈,它是把栈顶元素删除掉,使前一个元素成为新的栈顶元素。存在两个指针,一个始终指向栈底,叫做栈底指针,一个指向栈顶原创 2020-10-28 18:32:45 · 9690 阅读 · 6 评论 -
个人笔记--线性表的基本操作(插入、删除、查找...)
线性表的一些基本操作这里只介绍以下操作1----初始化2----销毁线性表3----清空线性表4----判断线性表是否为空5----求线性表长度6----获取线性表中指定位置的元素7----获取线性表元素的位置8----求前驱9----求后继10----在线性表指定位置插入元素11----删除线性表指定位置的元素12----显示线性表13----合并两个非递减有序的线性表------------------------------------------------------原创 2020-10-22 12:40:16 · 2502 阅读 · 3 评论 -
个人笔记--(单链表)队列的初始化,入队和出队
队列的一些基本操作目录队列的一些基本操作初始化队列销毁队列清空队列队列判空求队列长度取队头元素入队出队输出队列完整代码初始化队列Status InitQueue(LinkQueue &q){ q.front=q.rear=(QueuePtr)malloc(sizeof(QNode));//申请空间 if(!q.front)//内存不够,申请失败 exit(OVERFLOW); q.front->next=NULL;//队头指针指向空 re原创 2020-10-29 19:23:53 · 864 阅读 · 0 评论