数据结构
主要是为了梳理一下大二学的数据结构课程的体系,为以后考研做准备
独自莫凭欄
。。
展开
-
静态单链表代码模板
#include <iostream>using namespace std;const int N = 100010;int e[N],ne[N],n,head,idx;void Init(){ head = -1; idx = 0;}void add_to_head(int x){ e[idx] = x; ne[idx] = head; head = idx; idx++;}void add(int k, i原创 2021-08-17 14:43:49 · 106 阅读 · 0 评论 -
Dijkstra(迪杰斯特拉)模板
Dijkstra(迪杰斯特拉)算法思想本质来说是一种贪心。每次选择一条最短路径,这样最后得到的就是一条最短路径。举个例子:代码模板(邻接表与邻接矩阵)邻接矩阵版#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int MAXV = 1000;const int INF = 1e9;int n, G[MAXV][MAXV];/原创 2021-08-16 19:40:34 · 482 阅读 · 0 评论 -
数据结构——并查集
数据结构——并查集并查集的定义定义:并查集是一种维护集合的数据结构。是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。并查集支持下面两个操作:(1)合并:合并两个集合(2)查找:判断两个元素是否在一个集合并查集的表示其实就是一个数组例如:int Father[N]其中father[i]表示元素i的父亲结点,父亲结点本身也是这个集合内的元素并查集的基本操作1.初始化一开始的时候,原创 2021-07-25 14:17:43 · 109 阅读 · 0 评论 -
数据结构复习——二叉树三种遍历方式
数据结构复习——二叉树的遍历这里用到了c++ 的stl,记得加头文件二叉树结构的建立typedef struct BiTNode{ char data; struct BiTNode* lchild; struct BiTNode* rchild;}BiTNode,*BiTree;1.先序遍历(递归)void PreOrderTraverse(BiTree T){ if(T) { cout<<T->data; PreOrderTraverse(T-&原创 2021-07-23 20:57:16 · 182 阅读 · 0 评论 -
字符串匹配 BF算法
#include <stdio.h>#include <string.h>void Index_BF(char str1[],char str2[]){ int len1,len2; len1=strlen(str1); len2=strlen(str2); int ret; int i,j; i=0;j=0; while(i<len1 && j<len2) { if(原创 2021-01-22 13:01:20 · 85 阅读 · 0 评论 -
队列(不含代码)
队列(Queue)队列的定义一般队列存在的问题对假溢出现象的解决方案(循环队列)队列的定义定义:一种先进先出的数据结构顺序存储结构#define MAXSIZE 100typedef struct{ ElemType *base; int front; int rear;}SqQueue;链式存储结构typedef struct QNode{ ElemType data; struct QNode *next;}QNode,*Queue原创 2021-01-21 15:27:34 · 114 阅读 · 0 评论 -
栈(仅大学本科)
栈和队列栈的定义栈的定义栈的定义:什么叫栈,栈是限定在表尾进行插入或者删除操作的线性表。对栈来说,表尾有特殊的意义,称为栈顶,表头端则成为栈底。不含元素的栈称为空栈。栈的应用:1.数制度的转换2.括号比配的检验3.表达式求值(没有列举全)顺序栈的实现://顺序栈的结构#define MAXSIZE 100typedef struct{ ElemType *base; }...原创 2021-01-18 13:48:07 · 80 阅读 · 0 评论 -
线性表的应用之有序表的合并
算法步骤:指针pa和pb初始化,分别指向LA和LB的第一个结点LC的结点取值为LA的头节点指针pc初始化指向LC的头节点pa和pb都没有到达结点表尾时,依此比较pa和pb,选取元素的较小值的点摘取插入到LC中pc之后将此时的非空表的剩余段插入到pc所指结点之后释放LB的头节点#include <iostream>using namespace std;typedef struct LNode//单链表结构{ int data; struct LNode *next;原创 2021-01-10 21:07:38 · 204 阅读 · 0 评论 -
循环双链表代码(仅涉及简单操作)
循环双链表代码:#include <iostream>using namespace std;typedef struct DLNode//双循环链表结构定义{ int data; struct DLNode *prior; struct DLNode *next;}DLNode,*DLinkList;void InitList(DLinkList &L){ L=(DLNode *)malloc(sizeof(DLNode)); L->next=L;原创 2021-01-10 11:35:52 · 199 阅读 · 0 评论 -
循环单链表代码(无注释,自用)
#include <iostream>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void InitList(LinkList &L){ L=new LNode; L->next=L;}void CreatList(LinkList &L)//循环链表的创建{ L=new LNode; L->next=L原创 2021-01-09 21:31:12 · 189 阅读 · 0 评论 -
数据结构—双链表的有关操作(仅仅只有代码)
双链表的相关操作上一篇博客浅谈了一下顺序表和单链表这一篇博客简单介绍一下双链表的相关操作所谓双向链表激素和相对于单链表增加了一个prior(前驱)指向该节点的直接前驱经过这样处理后的链表会更加方便操作但是同时这也增加了空间复杂度Tips:整个数据结构系列的博客是为了复习一下大二没学好的内容,因为是转专业到计算机所以大二才开始学计算机。没有C语言和离散数学基础直接就学了数据结构,所以感觉学的不好,于是寒假决定写博客复习下。内容可能比较浅,...原创 2021-01-07 21:29:58 · 100 阅读 · 0 评论 -
数据结构之线性表(顺序表和单链表)
数据结构之线性表线性表的定义和特点三级目录线性表的定义和特点定义:由n个(n>=0)个数据特性相同的元素构成的有限序列被叫做线性表特点:存在唯一的一个被称作“”第一个的数据元素存在唯一的一个被称作“最后一一个”的数据元素三级目录...原创 2021-01-06 20:37:06 · 542 阅读 · 0 评论 -
算法与算法分析标准
算法与算法分析标准算法的定义以及特性a.算法定义b.算法特性算法的评价标准a.引言b.评价算法的标准算法的时间复杂度与空间复杂度a.时间复杂度b.空间复杂度算法的定义以及特性a.算法定义算法定义:为了解决某类问题的一个有限长的操作序列b.算法特性(1)有穷性:算法必须在有穷步后完成而且必须在有穷时间内完成(2)确定性:每一步操作明确,不会有二义性(3)可行性:算法的每一步都可以通过以及实现的基本操作算法执行有限次来实现(4)输入:有0个或者多个输入(5)输出:有一个或者多个输出(无输出的算原创 2021-01-03 19:18:38 · 673 阅读 · 0 评论 -
数据结构基本概念和术语
数据结构基本概念和术语1.数据,数据元素,数据项和数据对象2.数据结构逻辑结构1.数据,数据元素,数据项和数据对象数据(Data):客观事物的符号表示,例如数字,字符串,图形,声音,动画等等。数据元素(Data Element):数据的基本单位,是数据结构的基本研究对象。也被叫做元素或者记录。例如一个学生信息表中的一名学生记录。数据项(Data Item):组成数据元素的,有独立意义的,不可分割的最小单位,例如学生信息表里的学号,姓名等。数据对象(Data Object):性质相同的数据元素的集合原创 2021-01-02 21:56:59 · 769 阅读 · 1 评论 -
数据结构基础概念
数据结构基础概念原创 2020-06-16 14:36:12 · 99 阅读 · 0 评论 -
数据结构自用 算法概念
###算法一. 算法的基本概念:对特定问题的求解步骤,指令的有序序列二. 算法的五个特征:one.输入–算法有0个或者多个输出two.输出–算法至少有一个输出three.可行性–可以执行four.确定性–算法的每一条指令都有确切的定义,无二义性five.有穷性–有限步后终止三. 算法描述–自然语言,伪代码,历程图,程序语言四. 算法优劣的衡量:(1)正确性(2)可读性(3)健壮性(输入不合法数据是可以适当处理)(4)高效性五##### 重点算法的复杂度①算法的时间复杂度:就原创 2020-06-16 14:02:29 · 129 阅读 · 0 评论