数据结构基础
好好学习,天天向上
Jcldcdmf
haha
展开
-
关键路径
最近在准备复试,虽然关键路径机试从没考过,以防万一,自己实现一下。理论书上基本都有,就不写了。#include<iostream>#include<vector>#include<stack>#include<queue>using namespace std;const int maxn = 1000;struct node { i...原创 2020-03-08 00:37:32 · 352 阅读 · 0 评论 -
41. 缺失的第一个正数
题目描述:给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。算法描述://这是从王道的考研数据结构看来的。设置一个与给定数组nums大小相同的记录数组...原创 2019-04-27 08:42:22 · 112 阅读 · 0 评论 -
平衡二叉树(AVL树)
又要去上材料成型,不是说好的校运会不上课吗。注释和图晚上再写,嘿嘿//// Created by dgm on 19-4-10.//#include <iostream>using namespace std;#define LH 1#define EH 0#define RH -1typedef char ElemType;typedef struct Bi...原创 2019-04-12 15:39:39 · 163 阅读 · 0 评论 -
拓扑排序
//// Created by dgm on 19-4-1.//#include <iostream>using namespace std;#define MaxNum 100//use adjacency list to store graphtypedef struct EdgeNode{ //edge int weight; int ad...原创 2019-04-01 14:59:55 · 96 阅读 · 0 评论 -
最小生成树Prim算法
可以把最小生成树的生成过程看作是从一个节长成一棵树的过程,在这个过程中存在着两个集合,即已在生成树中的点的集合和还没有加入生成树的点的集合(其余元素),这两个集合之间通过元素之间的边有了联系,每次从其余元素中取元素加入生成树遵循的原则是:使这个元素和生成树之间连线的长度最短(也就是边最短)。 按照这个思想:closedge代表的就是树可能的生长方向,其中closedge[i]表示从closed...原创 2019-03-27 17:02:17 · 301 阅读 · 0 评论 -
深度优先和广度优先
渣渣编程bug多,调来调去一上午//// Created by dgm on 19-3-27.//#include <iostream>using namespace std;typedef int VertexType; //边的长度,本例全部输入1typedef int VRType; //节点编号typedef char* Info; //附加信息...原创 2019-03-27 11:10:02 · 144 阅读 · 0 评论 -
哈夫曼树(Huffman Tree)
//// Created by dgm on 19-3-16.//#include <iostream>#include <cstring>using namespace std;typedef struct HNode{ HNode(int w,int p,int l,int r) :weight(w), parent(p), ...原创 2019-03-16 22:30:20 · 393 阅读 · 0 评论 -
矩阵转置和乘法
//// Created by dgm on 19-3-6.//#define MaxSize 10000#define MaxRow 100#define MaxCol 100typedef int ElemType;typedef int Status;#include <iostream>using namespace std;typedef struct T...原创 2019-03-09 18:18:06 · 5343 阅读 · 0 评论 -
静态链表实现集合运算(A-B)∪(B-A)
用静态链表实现(A-B)∪(B-A)分析可知问题就是把A和B都有的元素从A中删去,把B有而A没有的加到A中,最后得到的A就是结果了//// Created by dgm on 19-2-25.//#include &lt;iostream&gt;using namespace std;#define MAXSIZE 1000typedef char ElemType;typed...原创 2019-02-25 17:25:09 · 2942 阅读 · 0 评论 -
单链表建立、插入、删除、合并
//// Created by dgm on 19-2-24.////感觉最麻烦的还是指针移动次数// 和元素的匹配,for循环经常搞不清楚//循环i次还是i-1次#include &lt;iostream&gt;using namespace std;typedef char ElemType;typedef struct LNode{ LNode() :ne...原创 2019-02-25 11:02:03 · 709 阅读 · 0 评论 -
顺序表
#include &amp;amp;amp;lt;iostream&amp;amp;amp;gt;using namespace std;#define MaxSize 1000#define Crement 100typedef int ElemType;typedef struct { ElemType *elem; int length; int listsize;}Sqlist;bool InitL...原创 2019-02-24 11:39:15 · 184 阅读 · 0 评论 -
链表L->next
刚开始看严蔚敏数据结构,到链表算法2.8,一开始对于p指向链表第一个结点的语句p=L-&amp;gt;next;不是很明白,认为头指针L指向头结点,头结点的下一个结点才是第一个结点,所以应该是p=L-&amp;gt;next-&amp;gt;next。现在明白了,L-&amp;gt;next=(L).next,而L表示取指针L所指的地址的内容(也就是头结点),所以L-&amp;gt;next=(*L).next=头结点.ne原创 2019-02-22 19:02:59 · 16986 阅读 · 32 评论 -
线索二叉树和BST
#include&amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;cstring&amp;amp;amp;amp;amp;gt;#define ElemType charusing namespace std;typedef enum{ //枚举?emmm,之前不知道 Li原创 2019-02-20 07:47:59 · 231 阅读 · 0 评论