数据结构
文章平均质量分 76
pipasound
前方无绝路,希望在转角
展开
-
数据结构错题总结(选择题+填空题)
1,数据的存储结构10,11,队列是不能任意删除的,先进先出12,1314,注意空串嗷1516a11是1行1列的意思(我是傻子)17第一个数组指标没动,下面那个后移18192021222324,25,26二叉树有五种形态,节点大于2才选C27深度不是度数28293031完全二叉树满二叉树3233342^n......原创 2022-06-25 16:16:20 · 416 阅读 · 2 评论 -
[数据结构]检索
二分检索算法的时间复杂度为:O(log2(n+1))若以二分检索来确定块,则分块检索查找成功时的平均查找长度为log2(n/s+1)+s/2删除操作的平均时间亦为O(log2n)二叉排序树的结点删除用其中序前驱代替该结点用其中序前驱代替该结点将其左子树收为该结点中序后继的左孩子将其左子树收为该结点中序后继的左孩子...原创 2022-05-12 12:58:58 · 493 阅读 · 2 评论 -
[数据结构]图(更新中~)
目录图的基本概念图的定义完全图度,入度,出度子图路径连通图与强连通图网络图的基本运算图的存储结构网络的邻接矩阵图的邻接矩阵存储结构图的邻接表存储结构图的邻接多重表存储结构图的遍历图的深度优先遍历(类似于树的前驱遍历)图的广度优先遍历算法图的基本概念线性结构:惟一前驱,唯一后继,反映一种线性关系树型结构:唯一前驱,多个后继,反映一种层次关系图形结构:不限制前驱和后继的个数,反映一网状关系图的定义由一个非空顶原创 2022-05-03 07:57:49 · 1387 阅读 · 1 评论 -
[数据结构]练习7- 二叉树
文章目录实验一 后序非递归遍历top=-1top=0总结实验二 前序非递归遍历总结实验三 中序非递归遍历总结实验四 二叉树的层次遍历实验七 链式存储二叉树,求值为x的结点在二叉树中的层次递归算法非递归算法叶子结点穿线二叉树实验一 后序非递归遍历top=-1//定义结构体typedef struct satck{bintree data[100];int tag[100];//定义一个标识int top;}seqstack;//算法实现void preorder1(bintreet){原创 2022-04-23 18:17:55 · 2488 阅读 · 0 评论 -
[数据结构]二叉树
文章目录二叉树的概念和性质二叉树五种基本形态概念性质二叉树的存储结构顺序存储链式存储二叉树的遍历二叉树的遍历算法(前序,中序,后序)前序遍历中序遍历后序遍历二叉树遍历算法的特点前序遍历特点前序遍历特点后序遍历特点创建二叉树存储结构二叉树的概念和性质二叉树与一般树型结构主要区别二叉树五种基本形态概念性质一棵非空二叉树的第k层至多有2^(k-1)个结点深度为h的二叉树至多有2^h -1个结(h>1),即每一层都是2^(k-1)个结点对于任何一棵二叉树,如果其终端结点数为n0,度为2原创 2022-04-19 20:26:15 · 1137 阅读 · 2 评论 -
[数据结构]练习1-线性表的顺序实现
文章目录实验一实验二实验三实验四实验五实验六实验七sequlist.h1.txt2.txt3.txt实验一/**********************************//*文件名称:lab1-01.c *//**********************************//*基于sequlist.h中定义的顺序表,编写算法函数reverse(sequence_list *L),实现顺序表的就地倒置。*/#include "sequlist.h"void原创 2022-03-07 23:52:30 · 2822 阅读 · 3 评论 -
[数据结构]练习6-树
文章目录实验一总结实验二总结实验三总结实验四总结实验五总结实验六总结tree.h实验一/*编写算法函数void levelorder(tree t)实现树的层次遍历。(顺序表)*/#include "tree.h"void levelorder(tree t) /* t为指向树根结点的指针*/{ tree quene[100]; tree p; int left=0,right=1,i; quene[0]=t;//表示队首,队尾的指针 while(left<right原创 2022-04-16 14:01:18 · 1993 阅读 · 5 评论 -
[数据结构]练习5-递归
文章目录总结实验一总结实验二总结实验三总结实验四总结实验五总结实验六总结实验七总结slinklist.hArraylo.h总结实验一#include "ArrayIo.h"/*请将本函数补充完整,并进行测试*/int max(int a[],int left,int right){ int l,r,mid; if(left==right){ return a[left]; } else{ mid=(right+left)/2; l=max(a,left,mid); r=原创 2022-04-13 12:27:14 · 2337 阅读 · 2 评论 -
[数据结构]树
文章目录树的基本概念有序树定义树型结构和其他表示方法括号表示法嵌套集合表示法凹入表示法树的存储结构双亲表示法孩子表示法孩子兄弟表示法树的遍历树的前序,后序,层次遍历算法思想建立树的存储结构树的前序遍历非递归算法树的层次遍历算法实现(队列)树的括号表示与层号表示法树的基本概念有序树有确定的根树根和子根之间为有向关系如上图,是两个不同的树定义结点:数据元素+指向子树的分支结点的度:分支的个数树的度:树中所有结点的度的最大值叶子结点:度为零的结点(终点结点)分支结点:度大于零的结点原创 2022-04-12 21:07:34 · 1564 阅读 · 1 评论 -
[数据结构]练习4-栈与字符串
实验一/*利用顺序栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能。*//**********************************//*文件名称:lab4_01.c *//**********************************/#include "seqstack.h"/*请将本函数补充完整,并进行测试*/void Dto16(int m){ seqstack原创 2022-04-04 17:22:11 · 1064 阅读 · 2 评论 -
[数据结构]字符串,数组与特殊矩阵,递归
文章目录字符串具体类型定义字符串的模式匹配模式匹配---BF算法模式匹配---KMP算法KMP算法next向量计算方法字符串顺序串:用数组来存储串中的字符序列具体类型定义#define MAXSIZE 100typedef struct{ char str[MAXSIZE]; int length;}seqstring;链接串:用链接存储结构来存储串字符串的模式匹配模式匹配指的是寻找字符串p在字符串t中首次出现的起始位置,其中p为模式,t为正文,t的长度远远大于p的长度模式匹配—原创 2022-04-04 16:26:27 · 1557 阅读 · 4 评论 -
[数据结构]练习3-带头结点的单链表
文章目录实验一总结实验二总结实验一/*假设带头结点的单链表head是升序排列的,设计算法函数linklist insert(linklist head,datatype x),将值为x的结点插入到链表head中,并保持链表有序性。分别构造插入到表头、表中和表尾三种情况的测试用例进行测试。*//**********************************//*文件名称:lab3_03.c *//*****************************原创 2022-03-24 23:44:30 · 4471 阅读 · 1 评论 -
[数据结构]双链表的链式存储-双链表,链式栈,链式队列
文章目录双链表输出双链表中各个结点的值查找双链表中第i个结点双链表结点的插入在最前面插入在双链表中某个位置插入x的结点在q所指结点的后面插入值为x的新结点在q所指结点(最后一个结点)的后面插入值为x的新结点双链表结点的删除双链表中只有唯一结点被删除的是双链表中第一个结点被删除的q是双链表中的最后一个结点被删除的结点在中间的某一个位置链式栈建立一个空的链式栈判断链式栈是否为空输出链式栈中个结点的值链式栈的插入链式栈的删除操作(出栈)链式队列建立一个空的链式队列取得链式队列的队首结点值双链表在链表中,每个结原创 2022-03-22 21:57:10 · 3036 阅读 · 6 评论 -
[数据结构]练习2-不带头结点的单链表
实验一/*编写函数slnklist delx(linklist head, datatype x),删除不带头结点单链表head中第一个值为x 的结点。并构造测试用例进行测试。*//**********************************//*文件名称:lab2_01.c *//**********************************/#include "slnklist.h"/*请将本函数补充完整,并进行测试*/linklist del原创 2022-03-16 20:42:28 · 3644 阅读 · 5 评论 -
[数据结构]线性链式存储-带头结点的单链表,循环单链表
文章目录链表带头结点和不带头结点的区别实验一链表带头结点和不带头结点的区别所有链表都有一个头指针head,带头结点中head数据为空,不带头结点在头结点存在数据,此时从头插入数据是时,head时刻变化1带头结点链表插入,使用p等于插入前的结点x->next=p->next;p->next=x;2不带头结点插入插入链表开头x->next=head->next;head=x//这里不是head->next=x插入链表其他位置,用p等于插入前的结点原创 2022-03-15 16:21:02 · 2942 阅读 · 7 评论 -
[数据结构]线性表的链式存储- 链式存储 ,单链表
链式存储最后一句表明,k2是k1的后继结点,k3是k2的后继结点,k4是k3的后继结点,k5是k4的后继结点,k5是空的表单链表typedef int datatype;```typedef struct link_node{datatype info;struct link_node *next;}node;typedef node*linklist;...原创 2022-03-09 11:31:13 · 2463 阅读 · 5 评论 -
[数据结构]线性表的顺序存储-队列
文章目录FIFO队列定义顺序队列队列初始化判断队列是否为空打印队列的结点值取得队列的队首结点值进队操作(插入)出队(删除操作)循环队列循环队列插入操作循环队列的删除操作FIFO队列定义顺序队列采用顺序表实现的队列称为顺序队列进队判断是否已满这个队列是否为空,即判断首尾两个指向同一单元#define MAXSIZE 100typedef int datatype;typedef struct{datatype a[MAXSIZE];int front;int rear;}sequ原创 2022-03-08 21:18:32 · 913 阅读 · 1 评论 -
[数据结构]线性表的顺序存储2 --栈
文章目录栈的定义顺序栈的实现取栈顶元进栈出栈十进制转八进制数表达式求值栈 是特殊的线性表栈的定义栈的特点:先进后出,后进先出由于空间限制,会因栈满而发生上溢出(进栈一定要判断栈是否已满)出栈要判断栈是否为空顺序栈的实现#define MAXSIZE 100typedef int datatype:typedef struct { datatype a[MAXSIZE]; int top;}sequence_stack;###判断栈是否已满void init(squenc原创 2022-03-02 09:45:09 · 273 阅读 · 0 评论 -
[数据结构]线性表的顺序存储1- -顺序表
文章目录顺序表顺序表的基本概念线性表顺序表的初始化---置空表在顺序表后部进行插入操作打印顺序表的各结点值判断顺序表是否为空表查找顺序表中值为x的结点取得顺序表中第i个结点的值顺序表插入顺序表的删除课后答疑顺序表线性表采用顺序存储的方式称为顺序表顺序表的基本概念线性表是一个线性结构#define MAXSIZE 100typeof int datatype; //typeof给int取名叫datatypetypedef struct{ //结构体 datatype a[MAXSIZ原创 2022-03-01 23:20:07 · 976 阅读 · 0 评论 -
[数据结构]绪论
文章目录数据结构的基本概念数据结构不同层次的描述抽象层描述:逻辑结构实现层描述:存储结构算法及评价错题汇总数据结构的基本概念数据结构可看做一种方便实施某种数据处理的工具/模式批量数据需要特定的组织结构数据结构=数据的组织结构+针对数据的基本操作数据结构不同层次的描述抽象层描述:逻辑结构实现层描述:存储结构顺序存储:物理相邻表示逻辑关系(数组)链式存储:逻辑上相邻,物理上不一定相邻(指针)用单链表表示索引存储先通过索引表确立元素初始位置散列检索构造一个从集合K到存储区原创 2022-03-01 17:17:07 · 339 阅读 · 0 评论