数据结构与算法笔记
数据结构与算法学习笔记
小王桐学
继续学习啦
展开
-
带权图的Dijkstra算法(贪心策略)单源最短路径和-----数据结构与算法笔记
Dijkstra算法分析笔记原创 2022-05-21 00:07:34 · 792 阅读 · 0 评论 -
一维数组中互换两个顺序表(六)-----考研数据结构题笔记
一维数组互换两个顺序表的相对位置,考研路不迷茫。原创 2022-04-16 17:48:45 · 1309 阅读 · 0 评论 -
有头链表删除所有值为e的节点(五)-----考研数据结构题笔记
在带头节点的单链表L中,删除所有值为e的节点,并释放其空间,假设值为e的节点不唯一,编写算法实现操作。原创 2022-03-11 18:46:20 · 1631 阅读 · 0 评论 -
无头单链表删除所有值为e的节点(递归算法)(四)-----考研数据结构题笔记
无头链表使用递归思想删除所有值为e的节点!!原创 2022-03-06 23:26:10 · 742 阅读 · 3 评论 -
非有序顺序表删除在给定区间内的所有值(三)-----考研数据结构题笔记
非顺序表删除给定区间之间的所有值!!!原创 2022-03-06 17:24:13 · 242 阅读 · 0 评论 -
有序递增顺序表删除给定s与t之间的值(二)-----考研数据结构题笔记
有序递增顺序表删除给定区间之间所有的值!!原创 2022-03-05 21:04:22 · 702 阅读 · 0 评论 -
无向图的邻接表表示求度和两种遍历-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2022-01-27 22:23:43 · 5683 阅读 · 0 评论 -
有向图的邻接矩阵表示求各节点的度、出度和入度-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2022-01-21 01:18:37 · 17654 阅读 · 4 评论 -
无向图的邻接矩阵表示求各顶点的度-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2022-01-20 00:32:28 · 10816 阅读 · 0 评论 -
顺序表的折半插入排序-----数据结构与算法笔记
1、折半插入参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。在之前我们了解了顺序表的折半查找算法,在这里所使用的折半插入排序也是利用了折半的功能进行排序的;它的思想与直接插入差不多(判断并插入在有序字段中),只不过在查找插入位置的思想上增添了折半查找思想:相关代码:#include "stdio.h"#include "stdlib.h"#define OK 1#define ERROR 0#define MAXSIZE 20typedef int Status;t原创 2021-12-26 19:25:49 · 1080 阅读 · 0 评论 -
线性链表求交集-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-25 16:32:28 · 1149 阅读 · 0 评论 -
线性链表的递增归并为递减-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-25 15:56:28 · 853 阅读 · 0 评论 -
线性链表的递增归并-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-25 15:46:19 · 411 阅读 · 0 评论 -
顺序表的直接插入排序-----数据结构与算法笔记
1、排序参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-24 22:51:03 · 3446 阅读 · 0 评论 -
二叉排序树的构建与遍历-----数据结构与算法笔记
1、二叉排序树参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-20 23:26:39 · 3567 阅读 · 0 评论 -
有序表的静态折半查找(判定树)-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-17 22:57:06 · 2329 阅读 · 3 评论 -
顺序表的静态顺序查找-----数据结构与算法笔记
参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-14 23:26:10 · 1543 阅读 · 0 评论 -
循环队列的入队出队-----数据结构与算法笔记
一、循环队列参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-12 23:19:06 · 11293 阅读 · 1 评论 -
链队列的报数问题-----数据结构与算法笔记
队列报数问题参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-10 21:34:46 · 1802 阅读 · 0 评论 -
链队列的入队出队-----数据结构与算法笔记
一、队列参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-07 23:40:14 · 4168 阅读 · 0 评论 -
链栈的括号匹配问题-----数据结构与算法笔记
1、括号匹配问题参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。顺序栈相关进栈出栈过程:链栈的进栈出栈过程相关代码:#include "stdio.h"#include "stdlib.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef char SElemType;typedef原创 2021-12-03 23:34:55 · 468 阅读 · 0 评论 -
顺序栈的括号匹配问题-----数据结构与算法笔记
1、括号匹配问题参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。原创 2021-12-03 22:33:54 · 920 阅读 · 0 评论 -
链栈的后缀表达式求值-----数据结构与算法笔记
一、链栈表示参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、链栈的后缀表达式求值操作链栈的表示比较与顺序栈相对更简单,并且存在如下优点:链栈的头指针就是栈顶;不需要头结点;基本不存在栈满情况;插入删除在栈顶实现;链栈表示如图:相关代码:#include "stdio.h"#include "stdlib.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#d原创 2021-12-01 22:51:47 · 1135 阅读 · 0 评论 -
顺序栈的后缀表达式求值-----数据结构与算法笔记
一、栈参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、顺序栈的后缀表达式求值操作栈和队列同线性表一样,也是线性结构,它们是线性表的子集(是插入和删除受限的线性表),如本节栈非常重要的一大特点是:后进先出(先进后出)LIFO结构。栈的顺序存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素,同时附带指针top指向栈顶元素,为了方便计算,通常非空栈中的栈顶指针top始终指向栈顶元素的下一个位置。而:top=0 或者 S.base == S.top都表示空栈base==N原创 2021-12-01 21:57:44 · 1614 阅读 · 0 评论 -
线性链表的回文数字判断-----数据结构与算法笔记
一、线性链表的回文数字判断参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。相关代码:#include "stdio.h"#include "stdlib.h"//#include "LinkList.h"#define OK 1#define ERROR 0#define TRUE 1#define FLASE 0#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef stru原创 2021-11-27 23:26:00 · 634 阅读 · 0 评论 -
线性链表的元素转置-----数据结构与算法笔记
一、线性链表的元素转置参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、转置思想如图:若线性链表初始化为:1,2,3,4,5从第2个位置进行元素转置步骤:转置后的元素应为:1,2,5,4,3(1)建立Pre指针指向1,Cur指向Pre的next(2),Next指针指向Cur的next(3);(2)...原创 2021-11-22 19:49:05 · 1415 阅读 · 0 评论 -
线性链表的删除-----数据结构与算法笔记
一、线性链表的元素删除参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、删除思想如图:若线性链表初始化为:1,2,3,4,5删除第3个位置的元素步骤:(1)查找到第i的位置的前驱,使用p指向i-1处;(2)建立q节点,使其在p的next,将q的next 给 p的next,使2的位置与4的位置相连(3)这时将q的位置的值赋给e返回,然后free(q)或delete q;这个节点,完成删除相关代码:#include "stdio.h"#include "stdlib.h原创 2021-11-20 23:23:17 · 2594 阅读 · 0 评论 -
二叉链树的中序线索化-----数据结构与算法笔记
一、线索二叉链树参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、基本意义线索化的实质就是将二叉链表中的空指针改为指向前驱节点或后继节点的线索;线索化的过程就是修改二叉链表中空指针的过程,可以按照前序、中序、后序的方式进行遍历,分 别生成不同的线索二叉树;有了线索二叉树之后,我们再次遍历时,就相当于操作一个双向链表。线索二叉树的概念可详细见好文章:1、线索二叉树中序线索化2、图解线索二叉树后序线索化相关代码:#include "stdio.h"#include "s原创 2021-11-18 22:30:30 · 276 阅读 · 0 评论 -
线性链表的建立与插入-----数据结构与算法笔记
一、线性链表参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、链式存储结构线性表的链式存储结构特点是用一组任意的存储单元存储线性表的数据元素,与顺序存储结构的区别在于这组存储单元可以是连续的,也可以是不连续的,并且存储方式为顺序存取,顺序结构是随机存取。在优缺点上有以下特点:优点:1、节点空间可以动态申请或释放;2、数据元素按照逻辑次序靠指针指示,插入与删除无需移动大量元素;缺点:1、存储密度太小(<1),指针域还需额外的存储空间;线性链表也可分为有头链表和无原创 2021-11-17 20:31:49 · 2452 阅读 · 2 评论 -
二叉链树交换左右子树(递归算法)-----数据结构与算法笔记
一、二叉链树交换左右子树操作参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);相关代码:#include "stdio.h"#include "stdlib.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef char TElemType;typedef struct BiNode原创 2021-11-15 23:29:08 · 1583 阅读 · 0 评论 -
二叉链树中求给定节点值所在的层次(递归算法)-----数据结构与算法笔记
一、求二叉链树中指定值所在的层次参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);相关代码:#include "stdio.h"#include "stdlib.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef char TElemType;typedef struct BiNod原创 2021-11-15 10:41:57 · 4375 阅读 · 0 评论 -
二叉链树的单分支与双分支节点个数(递归算法)-----数据结构与算法笔记
一、二叉链树的单分支与双分支节点个数参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);原创 2021-11-14 22:29:05 · 6983 阅读 · 1 评论 -
二叉链树的深度、叶子结点和总结点个数(递归算法)-----数据结构与算法笔记
一、二叉树的深度、叶子结点和总结点个数参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);一、深度、叶子结点和总结点叶子结点:度为0的节点称为叶子结点;总结点:二叉树所有节点之和;深度:树中节点的最大层次称为树的深度;相关代码:#include "stdio.h"#include "stdlib.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERF原创 2021-11-14 22:12:08 · 3944 阅读 · 0 评论 -
二叉链树的建立与遍历(递归算法)-----数据结构与算法笔记
一、二叉树参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);1、二叉树的特点1、是另一种树型结构;2、每个节点至多有两棵子树(即二叉树不存在度大于2的节点);3、二叉树的子树有左右之分,且次序不能任意颠倒;2、二叉树的重要性质性质1在二叉树的第i层上至多有2^(i-1)个节点(i>=1);性质2深度为k的二叉树至多有2^k-1个节点(k>=1);性质3对任何一棵二叉树T,如果其叶子结点个数为N,度为2的节点个数为n,则一定满足N=n+1;性质4具有原创 2021-11-13 23:58:32 · 454 阅读 · 0 评论 -
线性表的顺序表定位查找-----数据结构与算法笔记
一、线性表的顺序查找定位操作参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社);实现顺序表的查找操作,给出n和e的值,查找线性表中第n个与e相等的值,输出其在线性表中的位置。如果没有符合条件的值则输出 “没有此位置的数或者没有此值!”请将线性表初始化为:2,3,4,5,2,2测试用例:输入:1 2 输出:1输入:2 2 输出:5输入:3 4 输出:没有此位置的数或者没有此值!相关代码:#include "stdio.h"#include "stdlib.h"#defi原创 2021-11-13 00:15:06 · 1352 阅读 · 0 评论 -
线性表的顺序表删除-----数据结构与算法笔记
一、线性表的顺序删除操作参考书(《数据结构(C语言)》–严蔚敏等编著,清华大学出版社)在实现顺序表的删除操作的同时,还要对表进行合法性的判断,具体相关步骤如下:删除思想:1、在使用删除函数时判断删除位置的合法性,i<1 || i>length都是不合法的;2、将第i位置的元素删除;3、将第i+1之后的元素前移,补齐位置;4、表长-1;相关代码:#include "stdio.h"#include "stdlib.h"#define ERROR 0#define O原创 2021-11-11 23:20:28 · 3825 阅读 · 0 评论 -
顺序表的插入操作-----数据结构与算法笔记
第1部分 线性表此笔记记录了自己在学习本书的时候,记录一些知识点,让自己有个充实的学习过程,感谢阅读。参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。一、数据结构数据结构是相互之间存在一种或多种特定关系的数据元素的集合;数据结构可分为线性结构和非线性结构;其中又可分为:线性结构包括:1、线性表2、栈3、队列4、数组、广义表非线性结构包括:1、树,二叉树2、图3、网等在这里我们可以记住的是,线性结构是一对一的关系,而非线性结构是一对多、多对多的关系。数据元素之间的原创 2021-11-04 23:24:21 · 4036 阅读 · 0 评论