随笔分类 -  数据结构

最短路径问题-Floyd算法
摘要:具体步骤和图解看这个:https://www.cnblogs.com/ssyfj/p/9495960.html 一看这个就懂了-傻子也能看懂的弗洛伊德算法:https://www.cnblogs.com/wangyuliang/p/9216365.html 知识点: 1)Floyd算法适用于APSP 阅读全文

posted @ 2021-11-10 10:47 Y-flower 阅读(883) 评论(0) 推荐(0) 编辑

最短路径问题-Dijkstra算法
摘要:有权单源最短路径问题 具体思路和图解看这个-https://www.cnblogs.com/ssyfj/p/9491895.html 知识点: 1)权值不可为负 2)Dijkstra算法解决了从某个顶点到其余各顶点的最短路径。其时间复杂度是O(n*2) 更详细的图解(一看就懂!!!):https:/ 阅读全文

posted @ 2021-11-10 10:33 Y-flower 阅读(218) 评论(0) 推荐(0) 编辑

数据操作-Search(查找)
摘要:1. 顺序查找-O(N) 线性表;无序查找 等概率条件下...平均查找长度:ASL = (n+....+2+1)/n= (n+1)/2。2. 二分查找-O(logN) 线性表;有序查找;mid=low+0.5*(high-low) 在等概率条件下...平均查找长度:ASL =(1/n)* ( j * 阅读全文

posted @ 2021-11-09 15:14 Y-flower 阅读(483) 评论(0) 推荐(0) 编辑

数据操作-Sort(排序)
摘要:插入排序(基于比较的排序算法) 1.直接插入(性能要比冒泡和简单选择排序好些) 2.折半插入 (直接插入改进版) 3.希尔排序 交换排序 1.冒泡排序 2.快速排序 选择排序 1.简单选择 2.堆排序 插入删除 归并排序 1.归并排序 小总结: (一)经过一趟排序,能够保证一个关键字达到最终位置,这 阅读全文

posted @ 2021-11-09 11:05 Y-flower 阅读(245) 评论(0) 推荐(0) 编辑

非线性表-Graph(图-待完善)
摘要:1:图的知识点 关于连通子图 1)极小连通子图与极大连通子图是在无向图中进行讨论的 2)极大强连通子图是在有向图中进行讨论的 极大连通子图:1.连通图只有一个极大连通子图,就是它本身。(是唯一的)2.非连通图有多个极大连通子图。(非连通图的极大连通子图叫做连通分量,每个分量都是一个连通图)3.称为极 阅读全文

posted @ 2021-11-04 11:14 Y-flower 阅读(348) 评论(0) 推荐(0) 编辑

非线性表-BiTree(二叉树练习题-没事多看看)
摘要:1:判断是否为平衡二叉树 int depth(bitTree T) { if(!T) return 0; else return max(depth(T->lchild),depth(T->rchild))+1; //这有个缺点,空树会返回深度1 } //判断平衡二叉树 int balance(bi 阅读全文

posted @ 2021-11-04 10:53 Y-flower 阅读(105) 评论(0) 推荐(0) 编辑

非线性表-BiTree(特殊二叉树-需记忆!!!!难啊难)
摘要:1:哈夫曼树-wpl最小-最优二叉树 1.没有度为1的结点 2.n个叶子节点的哈夫曼树共有2n-1个结点 树的特点:度为2结点和叶结点的关系n2=n0-1 所以:当叶结点为n时,度为二的结点数为n-1 因为哈夫曼没有度为一的结点,所以一共在树中有2n-1个结点 3.哈夫曼树任意非叶结点的左右子树交换 阅读全文

posted @ 2021-11-04 10:18 Y-flower 阅读(329) 评论(0) 推荐(0) 编辑

非线性表-BiTree(二叉树)
摘要:1.Status InitBiTree(BiTree *T) 构造空二叉树 2.Status DestroyBiTree(BiTree *T) 销毁二叉树,前提T存在 3.Status CreateBiTree(BiTree *T) 用先序遍历创建二叉树 4.Status ClearBiTree(B 阅读全文

posted @ 2021-11-04 09:54 Y-flower 阅读(1679) 评论(0) 推荐(0) 编辑

线性表(特殊)-栈和队列练习题
摘要:1:算数表达式包含(),{},[]编写算法判断表达式括号是否配对,以'\0'作为算术表达式结束符 用栈 void ismatch(char *str) { stack s; init(s);//初始化栈 int i=0;while(str[i]!='\0') { //(2+4)+{(4+{7+8+( 阅读全文

posted @ 2021-11-03 17:01 Y-flower 阅读(67) 评论(0) 推荐(0) 编辑

线性表(特殊)-Stack(栈)
摘要:1:顺序栈-数组 2:链栈 #define initSize 20 typedef struct stackNode { int data; int lenth; struct stackNode *next; }linkStack; 定义操作初始化栈 int initStack(linkStack 阅读全文

posted @ 2021-11-03 16:40 Y-flower 阅读(38) 评论(0) 推荐(0) 编辑

线性表(特殊)-Queen(队列)
摘要:typedef struct Qnode{ int elem; struct Qnode *next; }Qnode; typedef struct queueList{ struct Qnode *head;//队列的头指针 struct Qnode *end;//队列的尾指针 }queueLis 阅读全文

posted @ 2021-11-03 16:30 Y-flower 阅读(84) 评论(0) 推荐(0) 编辑

线性表-circularLinkList(循环链表练习题)
摘要:1:设计一个算法用于判断带头结点的循环双链表是否对称 int judgebalance(pNode **head) { pNode *p,*q; p=*head->next;//指向下一个正序 q=*head->prev;//指向前一个逆序 /*我的思路 while(p->data==q->data 阅读全文

posted @ 2021-11-03 10:25 Y-flower 阅读(158) 评论(0) 推荐(0) 编辑

线性表-TwoLinkList(双链表)
摘要:知识点 1:循环双链表尾结点指向头结点 typedef struct TWONode { int data; pNode *prev,*next; } pNode; int main(int argc, char const *argv[]) { int n, element, flag; pNod 阅读全文

posted @ 2021-11-03 10:10 Y-flower 阅读(42) 评论(0) 推荐(0) 编辑

线性表-LinkList(单链表练习题)
摘要:typedef struct Nodel { int a; struct Nodel* next; }node; node *head1;head1->next=NUll; node *end1=NULL; 1:在带头结点的单链表L中插入尾结点 void add(int value) { node 阅读全文

posted @ 2021-11-03 09:56 Y-flower 阅读(550) 评论(0) 推荐(0) 编辑

线性表-LinkList(单链表)
摘要:知识点 1:顺序存储结构需要预分配存储空间。单链表不需要分配存储空间,元素限制不受控制2:选择顺序存储结构-线性表需要频繁查找,很少进行插入和删除操作。使用单链表结构-元素个数变化较大或者根本不知道有多大时3:链表改不改变,应该准确理解为链表头指针地址是否改变。增、删、改的是非头结点时,加不加&符号 阅读全文

posted @ 2021-11-01 17:02 Y-flower 阅读(633) 评论(0) 推荐(0) 编辑

线性表-SqList(顺序表)
摘要:知识点: 1:缺点 1)插入和删除操作需要移动大量的元素 2)当线性表长度变化较大时,难以确定存储空间的容量 3)任意造成存储空间的碎片 2:优点 1)无须为表示表中元素之间的逻辑关系而增加额外的存储空间。 2)可以快速的存取表中的任意位置的元素。 3:代码中增加,删除,是需要在原来线性表中进行,所 阅读全文

posted @ 2021-11-01 11:55 Y-flower 阅读(1956) 评论(0) 推荐(0) 编辑

最小生成树问题-kruskal算法
摘要:kruskal适合稀疏图 具体步骤和演示看这个:https://www.cnblogs.com/ssyfj/p/9488850.html 知识点: 1:步骤: 1)将图中的所有边都去掉。 2)将边按权值从小到大的顺序添加到图中,保证添加的过程中不会形成环 3)重复上一步直到连接所有顶点,此时就生成了 阅读全文

posted @ 2021-09-29 11:29 Y-flower 阅读(65) 评论(0) 推荐(0) 编辑

最小生成树问题-prim算法
摘要:prim适合稠密图,权值不可为负,不能有回路(保证不重复收录节点即可) 具体图标演示看这个:https://www.cnblogs.com/ssyfj/p/9488723.html 知识点: 1)以其中某一顶点为起点,逐步寻找各个顶点上最小权值的边来构建最小生成树。其中运用到了回溯,贪心的思想。 ( 阅读全文

posted @ 2021-09-29 11:10 Y-flower 阅读(238) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示