数据结构
Nuo__
在学了在学了
展开
-
存储图:邻接矩阵和邻接表
邻接矩阵定义存储结构用两个数组分别储存顶点表和邻接矩阵构造无向网的邻接矩阵算法邻接表定义存储结构节点类型构造邻接表算法邻接表与邻接矩阵间的关系1.联系:邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一行中非零元素的个数2.区别:(1)对于任一确定的无向图,邻接矩阵是唯一的,但邻接表不唯一 ...原创 2022-03-14 18:52:41 · 4313 阅读 · 0 评论 -
哈夫曼树(最优二叉树:带权路径长度最短的树(度相同的情况下))
基本概念1、结点的路径长度:两结点间间路径上的分支数2、树的路径长度:从根结点到每一个结点的路径长度之和3、结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积4、树的带权路径长度:树中所有叶子结点的带权路径长度之和构造哈夫曼树(贪心算法)权值越大的叶子离根越近构造森林全是根(每个结点都做根,造成结点个数的森林)选用两小造新树(选出两个权值小的树作为左右子树构造一个新的树)删除两小填新人(新树的权值是“两小”权值相加)重复2、3剩单根包原创 2022-03-13 09:22:44 · 3014 阅读 · 0 评论 -
遍历二叉树、树、森林
递归算法先序遍历中序遍历后序遍历非递归算法中序遍历二叉树的层次遍历原创 2022-03-12 22:33:24 · 504 阅读 · 0 评论 -
串的模式匹配BF和KMP算法实现
BF算法(简单匹配法,穷举思路)int match(SString S,SString T){int i=1,j=1;while(i<=S.length&&j<=T.length){if(s.ch[i]==t.ch[i]){i++;j++}//主串和字串以此匹配下一个字符else {i=i-j+2;j=1;} //主串字串指针回溯重新开始下一次匹配}if(j>=T.length) return i-T.length; // 返回匹配的第一.原创 2022-03-12 10:20:24 · 584 阅读 · 0 评论 -
队列的基本操作
仅在表尾入队,在表头出队顺序队列用一维数组定义节点类型#define MAXQSIZE 100 //最长队列长度typedef struct{QElemType *base;int front,rear; //头指针和尾指针}SqQueue;初始化:front=reae=0;入队: base[rear]=e; rear++;出队: x=base[front]; front++;表示队空:front==rear;表示队满:rear=MAXQSIZE;原创 2022-03-10 17:11:06 · 160 阅读 · 0 评论 -
栈的基本操作
顺序栈s.base s.top 指针判断栈满: s.top-s.base==stacksize;判断栈空:s.top==s.base清空栈:if(s.base) s.top=s.base,stacklen=0;销毁栈: if(s.base){ free(s.base) ; stacksize=0; s.top=s.base=null;}入栈:if(s.top-s.base==stacksize) return ERROR;栈满,报错*s.top=e; s.top+...原创 2022-03-10 16:06:10 · 700 阅读 · 0 评论 -
数据结构:树、森林与二叉树的转换
以二叉链表为媒介,找出对应关系树用孩子兄弟表示法(左指针指向第一个孩子,右指针指向下一个兄弟)原创 2021-12-28 09:55:51 · 541 阅读 · 0 评论