
数据结构
正版河图小迷弟
这个作者很懒,什么都没留下…
展开
-
循环队列
循环队列概念及结构循环队列是一种特殊的队列,普通队列普遍使用单向链表来表示,所以整个队列在逻辑结构上是一条链,而循环队列是用数组来进行表示的,而且其逻辑结构上表示为一个环型结构。逻辑结构首先我们看一下循环队列的逻辑结构:循环队列同普通的队列一样都有收尾指针,不同的是循环队列的尾指针是指向最后一个元素的下一个位置,所以循环队列的容量是比数组大小少了一位。物理结构实际上我们的循环队列就是一个一维数组:...原创 2020-05-19 17:13:31 · 1022 阅读 · 0 评论 -
队列
目录队列的概念及结构队列代码实现队列的概念及结构队列和栈略有不同,队列是先进后出的一种数据结构,通常使用链表来表示,当然有一种特殊的循环队列使用顺序表来进行表示的。队列只允许从后进入,从前弹出,就像我们生活中排队一样,下面来看下队列的结构模型:如上图,队列是只有队头才能删除元素(出队),队尾才能插入元素(入队),由此可以得出数据结构为:typedef int QDataType;//定义结点的结构体typedef struct QNode{ QDataType val; strcut原创 2020-05-16 21:30:43 · 170 阅读 · 0 评论 -
栈
栈的概念及结构栈使我们经常用到的一种数据结构,其是一种先进后出的单向出口的一种模型,其实现通常是用顺序表进行实现的,下面来看一下栈的模型:上图是反映出栈的一个使用状态的模型,可以得到栈的一个数据结构:typedef int SDataType;typedef struct Stack{ SDataType* array; //栈空间 size_t size; //有效元素个数 size_t capacity; //栈容量}Stack;因为栈的容量和有效元原创 2020-05-16 21:05:33 · 150 阅读 · 0 评论 -
链表——双向循环链表
双向循环链表物理存储结构双向循环链表与单链表一样,都是逻辑连续、物理不连续的存储方式,但它的效果要远远优于单链表,其结构如下:双向循环链表首先要有一个头节点,头节点中不存放数据,真正的数据从头节点的下一个节点开始存放;然后每一个节点都有两个指针,分别指向前一个节点和后一个节点;最后头尾相连,就成了双向循环链表。代码实现#include<stdio.h>#include&l...原创 2020-04-06 21:11:21 · 327 阅读 · 0 评论 -
链表——单链表
链表的形式有很多,主要有一下的区别:1、单向、双向2、带头、不带头3、循环、非循环单链表物理存储形式单链表与顺序表的逻辑存储形式一样,都是线性存储,但是单链表的物理存储缺并不一定连续,它的每个元素之间是由地址指针相连的,所以它的每个单位是由一个存储元素和一个地址指针组成的节点,结构图如下:上图为不带头、单向、不循环链表代码实现#include<stdio.h>#...原创 2020-04-06 20:53:16 · 155 阅读 · 0 评论 -
顺序表
数据结构所讲述的是数据的存储、组织方式其中最基础的就是线性表了,什么是线性表?顾名思义,就是在逻辑结构上为一条直线的存储方式,主要分为顺序表和链表两种存储形式,今天我们主要来了解一下顺序表。顺序表物理存储形式顺序表的物理存储形式和数组一样,都是在内存中开辟一串连续的存储空间来进行存储,其形式如下:顺序表有静态和动态存储两种之分,静态存储限制了存储空间的大小,不能再增加,而动态存储则可以...原创 2020-04-06 20:29:56 · 331 阅读 · 0 评论