怎么删除结构体数组中的一组数据_数据结构-栈

数据结构-栈

1)栈的定义.

栈是只能通过访问它的一端来实数据存储和检索的一种线性数据结构,逻辑结构和线性表相同。特点在于运算有所限制:即主要特征是“后进先出”(先进后出)。

在栈中进行插入和删除操作的一端成为栈顶,另一端为栈底,不含数据元素的栈成为空栈

2)栈的基本运算(无排列顺序).

#1.初始化栈InitStack(s)

创建一个空栈。

#2.判栈空 int SEmpty(s)

初始条件:栈s已经存在

操作结果:若栈为空返回1,否则返回0

#3.入栈(进栈)Push(&s,x)

初始条件:栈s已经存在,且非空

操作结果:在栈顶插入一个元素x,栈中多了一个元素

#4.出栈 Pop(&s,&x)

初始条件:栈s存在,且非空

操作结果:将栈顶元素赋值给x,然后删除栈顶元素,栈中少了一个元素

#5.读栈顶元素 ReadTop(s,&e)

初始条件:栈s已经存在,且非空

操作结果:输出栈顶元素,但栈中元素不变

#6.显示栈元素 ShowStack(s)

初始条件:栈s已经存在,且非空

操作结果:显示栈中所有元素


2)栈的顺序结构

栈的顺序结构是指用一组地址连续的存储单元依次存放自栈顶到栈底的数据元素,同时辐射栈顶指针(Top)来只是栈顶元素在栈中的位置。

1).顺序栈的实现

#1.用一堆数组实现顺序栈

设栈中的数据元素的类型是datatype型,用一个足够长的一维数组data来村发那个元素,数组的最大容量为MAXLEN,栈顶指针为Top,则

#define MAXLEN 10
datatype data[MAXLEN];
int top;

#2.用结构体数组实现顺序栈

#define MAXLEN 10
typedef struct
{  datatype data[MAXLEN];
int top;
} SeqStack;

3)链栈

用链式存储结构实现爱你的栈称为链栈。

4e058dffbbc87b9dfa91729f8dff24e2.png

链栈的基本算法:

#1.初始化

#2.判栈空

#3.入栈

#4.出栈

#5.显示栈中所有元素

4).栈的基本应用:表达式求值,括号匹配等。在计算机语言的实现以及将递归过程转变为非递归过程的处理中,栈有重要的作用。



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部