数据结构
文章平均质量分 62
「已注销」
这个作者很懒,什么都没留下…
展开
-
数据结构笔记汇总
文章目录写在最前1基础1.1基本概念1.1.1数据1.1.2结构1.1.2.1逻辑结构1.1.2.2物理结构1.1.2算法性能1.1.2.1特性1.1.2.2 时间、空间复杂度1.2类C语言1.2.1概述1.2.2例题2 线性表2.1 线性表的逻辑结构2.1.1 例题2.2 线性表的操作2.2.1 合并集合2.2.2 过滤集合中的重复元素2.2.3合并有序表2.3 顺序表2.3.1线性表的顺序存储结构2.3.1.1 顺序表初始化2.3.1.2 顺序表的查找2.3.1.3 例题2.3.2 顺序表的插入2.3原创 2021-06-29 14:30:36 · 776 阅读 · 0 评论 -
图
文章目录图的定义和术语图的定义和术语图:G(V,E)。V:顶点(数据元素)的有穷非空集合。E:边的有穷集合。完全图:任意两个点都有一条边相连。稀疏图:有很少边或者弧的图(e<nlogn)。稠密图:有较多边或弧的图。网:边/弧带权的图。邻接:有边/弧相连的两个顶点之间的关系。存在(vi,vj)则称vi,vj互为邻接点;存在<vi,vj>则称vi邻接到vj,vj邻接于vi。关联(依附):边/弧与顶点间的关系:存在(vi,vj)/<vi,vj>,则称该边/弧关联于原创 2021-05-08 22:24:22 · 99 阅读 · 0 评论 -
树和森林
文章目录1. 树和森林2.树的存储结构2.1双亲表示法2.1.1 C语言的类型描述2.2 孩子链表表示法2.2.1 C语言的类型描述3.孩子兄弟表示法1. 树和森林树:n个结点的有限集。若n=0,称为空树#mermaid-svg-qPPlYpJVwL5sukJw .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-原创 2021-05-05 17:23:57 · 332 阅读 · 0 评论 -
数据结构上机题
顺序表某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和入职。把所有员工按照顺序存储结构建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且打印最新的员工名单。/*1、某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和入职。把所有员工按照顺序存储结构建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且打印最新的员工名单。*/#include<stdio.h>#include原创 2021-03-21 16:58:43 · 1773 阅读 · 0 评论 -
链表
文章目录min_max删除逆置min_max删除#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct node //线性表的链式存储结构{ int data; //数据域 struct node *next; //指针域}LNode,*LinkList;void LinkListDelete(LinkList L,in原创 2021-03-14 16:30:28 · 130 阅读 · 0 评论 -
树
文章目录概念二叉树概念树是n个结点的有限集合有且仅有一个特定的称为根的结点。当n>1时,其余结点可分为m(m>0)个互不相交的有限集合,其中每一个集合本身又是一棵树,称为根结点的子树。☆n个结点的树中有n-1条边。基本术语:祖先结点和子孙结点双亲结点和孩子结点兄弟结点度:树中一个结点的子结点结点的层次结点的高度结点的深度树的高度:树种结点的最大层数二叉树存储结构typedef struct BitNode { int data; struct原创 2021-02-16 15:15:56 · 352 阅读 · 0 评论 -
串
文章目录概念操作串的存储结构求子串比较操作定位操作串的朴素模式匹配算法概念串时一种特殊的线性表,数据元素之间呈线性关系操作StrAssign(&T,chars):赋值操作StrCopy(&T,S):复制操作StrEmpty(S):判空操作Strlength(S):求串长ClearString(&S):清空操作DestroyString(&S):销毁串Concat(&T,S1,S2):串连接SubString(&Sub,S,pos,原创 2021-01-21 11:36:35 · 243 阅读 · 0 评论 -
栈的应用(c语言)
栈的括号匹配问题由括号匹配的规则很容易会想到用栈来实现。bool bracketCheck(char str[], int length)//括号匹配 { SqStack s; InitStack(s); for (int i = 0; i < length; i++) { if (str[i] == '(' || str[i] == '[' || str[i] == '{') { Push(s, str[i]);//扫描左括号,入栈 } else原创 2021-01-19 07:50:58 · 628 阅读 · 0 评论 -
队列(c语言)
文章目录概念基本操作:队列的顺序存储预处理及存储结构插入删除读取队头元素队列的链式存储预处理及存储结构初始化入队出队概念队列(queue):只允许在一段插入,另一端删除的线性表。队头:允许删除的一端。队尾:允许插入的一端。空队列特点:先进先出(FIFO:first in first out)基本操作:初始化:InitQueue(&Q)销毁:DestroyQueue(&Q)入队:EnQueue(&Q,x)出队:DeQueue(&Q,x)读取队头元素原创 2021-01-18 04:58:23 · 258 阅读 · 0 评论 -
栈的基本操作(c语言)
目录概念顺序栈存储结构初始化进栈出栈读取栈顶元素概念栈是只允许在一端进行插入或删除操作的线性表栈顶:只允许删除或插入操作的一端。栈顶:不允许许删除或插入操作的一端。特点:后进先出(LIFO:last in first out)顺序栈#define MaxSize 10 存储结构typedef struct LNode{ int data[MaxSize];// int top;//栈顶指针 }SqStack;初始化void InitStack(SqStack &原创 2021-01-17 05:38:14 · 824 阅读 · 0 评论 -
线性表之循环链表的基本操作(c语言)
本文将着重介绍双链表的循环链表操作目录定义单链表存储结构初始化双链表存储结构初始化插入删除循环双链表与非循环对比插入删除定义循环链表中最后一个结点的指针域指向头结点,整个链表形成一个环。单链表存储结构typedef struct LNode{ int data;//数据域 struct LNode *next;//指针域}LNode,*LinkList;初始化bool InitList(LinkList &L){ L=(LNode*)malloc(sizeof(.原创 2021-01-16 06:53:46 · 311 阅读 · 0 评论 -
线性表之双链表的基本操作(c语言)
目录概念存储结构初始化插入删除删除后继结点销毁链表概念双链表的每个数据结点中都有两个指针,分别指向后继结点和前驱结点。存储结构typedef struct LNode{ int data;//数据域 struct LNode *next,*prior;//指针域}LNode,*LinkList; LinkList和LNode是不同名字的同一个指针类型。*LinkList类型的指针变量head表示它是单链表的头指针。LNode类型的指针变量p表示它是指向某一结点的指针。初始化原创 2021-01-16 06:16:31 · 274 阅读 · 0 评论 -
线性表之单链表的基本操作(c语言)
目录概念c语言结构定义初始化带头结点不带头结点插入指定位置有头结点无头结点指定结点后插前插删除按位序删除指定结点删除单链表的查找按位查找按值查找单链表的建立概念链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以“结点的序列”表示线性表称作线性链表(单链表),单链表是链式存取的结构。c语言结构定义typedef struct LNode{ int data;//数据域 struc原创 2021-01-15 11:24:30 · 268 阅读 · 0 评论 -
线性表的顺序表示和实现
含注释,用c++实现类和基本语法(但动态内存分配是用的c语言的malloc)原创 2021-01-13 05:57:04 · 1120 阅读 · 0 评论