栈和队列存储结构总结
认识:
栈和队列是线性表的子集
(是插入和删除位置受限的线性表)
一.栈:
1.什么是栈?
栈是一种只能在一端插入或删除操作的线性表
2.栈的特点?
后进先出
3.栈的存储结构
3.1顺序栈
假设栈的元素个数最大不超过正整数MaxSize
元素都具有同一数据类型,ElemType
typedef struct
{
ElemType data[MaxSize]; //存放栈的元素
int top; //栈顶指针
}SqStack; //声明顺序栈类型
3.2链栈
链栈中数据节点的类型LiStack定义如下:
tydedef struct linknode
{
ElemType data;//数据域
struct linknode * next;//指针域
} ListStack;//声明链栈节点类型
二. 队列
1.什么是队列?
仅限于在表的一端插入,另一端删除的线性表
2.队列的特点?
先进先出
3.队列的存储结构
3.1顺序队
假设队列的元素个数最大不超过正整数MaxSize
元素都具有同一数据类型,ElemType
typedef struct
{
ElemType data[MaxSize];
int front,rear;//队首和队尾指针
}SqQueue; //声明顺序队的类型
2.链队
链队中的数据节点的类型QNode定义如下:
typedef struct qnode
{
ElemType data;
struct qnode * next;
}QNode; //声明链队数据节点的类型
链队节点的类型LiQueue定义如下:
typedef struct
{
QNode * front;//队头指针
QNode * rear;//队尾指针
}LiQueue;//声明链队类型
栈和队列存储结构总结相关推荐
- 数据结构(C++版) 栈的链接存储结构及实现
数据结构(C++版) 栈的链接存储结构及实现 #include<iostream.h> struct node { int data; node *next; }; cla ...
- java链式栈_Java栈之链式栈存储结构实现
一.链栈 采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈. 二.栈的链式存储结构实现 package com.ietree.basic.datastructure.stack; /** * 链 ...
- 数组队列存储结构的简单实现例子
#include<stdio.h> #include <malloc.h> #include <stdlib.h> #define NUM 7 /* *队列是一个理 ...
- 什么是栈,栈存储结构详情
什么是栈,栈存储结构详情 同顺序表和链表一样,栈也是用来存储逻辑关系为一对一数据的线性存储结构,如图所示: 从图1我们看到,栈存储结构与之前学的线性存储有所差异,这源于栈对数存和取的过程有特殊的要求: ...
- 从无到有算法养成篇-栈和队列·队列
一.队列的定义 队列是啥? 数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列. 队列的两个基本操作:入队将一个数据放到队列尾部:出队从队列的头部取出一 ...
- 数据结构之栈与队列(二)
什么是队列 队列和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构.与栈不同的是,队列的两端都"开口",要求数据只能从一端进, ...
- 数据结构笔记(二) 栈和队列(C语言描述)
数据结构(二) 栈和队列 栈 顺序栈 存储结构 #define MAXSIZE 50 #define SElemType int typedef struct{SElemType *top;SElem ...
- 数据结构51题之栈和队列18题
创作不易,点个关注加个收藏再走,防止找不到 目录 一.栈系列基础8道题 1.顺序栈的建立 2.顺序栈的入栈 3.顺序栈的出栈 4.顺序栈栈顶元素的获取 5.链栈的建立 6.链栈的入栈 7.链栈的出栈 ...
- c++ 队列_Day 5:用两个栈实现队列
剑指Offer_编程题--用两个栈实现队列 题目描述: 用两个栈来实现一个队列,完成队列的push和pop操作.队列中的元素为int类型 具体要求: 时间限制: C/C++ 1秒,其他语言2秒 空间限 ...
最新文章
- 系统权限oracle,oracle系统权限
- MATLAB编程经典程序 素数的判断,求0~100素数之和
- Android之使用Android-AQuery异步加载图片(一)
- 关于WEB ServiceWCFWebApi实现身份验证之WebApi篇
- c语言 static 关键字的作用
- 关于 Angular 项目类型为 library 的工程使用 tsconfig.json 的问题
- WORD列表缩进的文本起始点
- 精通Windows Sockets 网络开发-基于Visual C++实现
- java观察者模式举例
- 纵横捭阖 《鬼谷子》
- git error: You have not concluded your merge (MERGE_HEAD exists).
- 幼儿园手工之自制时钟_「时钟手工」幼儿园玩教具手工时钟,培养孩子的时间观念...
- 消遣时间的小程序有哪些?这3个好玩又有趣的游戏小程序送给你!
- 富士胶片集团发布2021财年上半年度财报;罗克韦尔自动化推出新的远程访问解决方案 | 全球TMT...
- LWIP开发 | scoket | tcp | client
- 国内外遥感类核心期刊汇总
- 利用MyBatis实现CRUD操作
- 回归(Regression )
- python第二周基本图形绘制
- Velocity中使用FCKeditor(FCKeditor for java)
热门文章
- golang 使用 protobuf 的教程
- seci-log 1.11 发布 增加了ftpserver,远程ftp,sftp采集简化配置等功能
- SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
- 用ldap方式访问AD域的的错误解释
- 打造开发者的win7
- 使用VMware Workstation搭建基于Linux的Oracle 10g RAC
- 隔壁组Leader降级了!从不pua,亲自写代码,自己加班也不让下属加班!
- 深入剖析RocketMQ源码-NameServer
- 大厂程序媛的特殊烦恼:男朋友工资只有自己的60%,天天阴阳怪气!
- 上周我面了个三年 Javaer,这几个问题都没答出来