合金电阻,赛普欢迎您!

C语言堆栈的图形分析和实现

首页 > 资讯

堆栈简介堆栈是一种线性存储结构。

它具有以下特征:根据“后进先出(LIFO,后进先出)”来输入和退出堆栈中的数据。

方法。

向堆栈中添加/删除数据时,只能从堆栈的顶部进行操作。

堆栈通常包括三个操作:push,peek和pop。

将元素推入堆栈。

peek-返回堆栈的顶部元素。

弹出返回并删除堆栈操作的顶部元素。

1.堆栈示意图堆栈中的数据为30→20→10。

2.从堆栈中弹出弹出之前:堆栈的顶部元素为30。

这时,堆栈中的元素顺序为30→20→10。

弹出后:弹出30后,堆栈的顶部元素变为20。

这时,堆栈中的元素顺序为20→10。

3.推入堆栈推入堆栈之前:堆栈的顶部元素为20。

这时,堆栈中的元素顺序为20→10。

堆叠之后:堆叠40个之后,堆叠的顶部元素变为40个。

此时,堆叠中的元素顺序为40→20→10。

堆栈的C实现1数组实现的堆栈,并且只能存储int数据。

实现代码:运行结果:tmp = 30tmp = 20stack size()= 3402010结果描述:本示例中的堆栈由“ array”实现!由于已在代码中给出了详细的注释,因此此处将不解释该功能。

仅简要介绍主要功能main的逻辑:在主要功能main中,首先按“ 10、20、30”按钮,然后再按一次。

依次进入堆栈。

此时,堆栈的数据为:30→20→10。

然后通过pop()返回堆栈的顶部元素; pop()操作不会更改堆栈中的数据。

此时,堆栈的数据仍为:30→20→10。

然后通过peek()返回并删除堆栈的顶部元素。

窥视操作后,堆栈数据为:20→10。

然后通过push(40)将40推入堆栈。

push(40)操作后,堆栈的数据为:40→20→10。

2由单链表实现的堆栈,并且只能存储int数据。

实施代码:代码描述:“运行结果”。

以及“主要功能主要逻辑”。

与“ C语言实现一”相同。

不同之处在于,本例中的堆栈是通过单链表实现的。

3用于双链表实现的堆栈,并且只能存储int数据实现代码:(1)双链表头文件(double_link.h)(2)双链表实现文件double_link.c)(3)双链表测试程序(dlink_stack.c)代码说明:“运行结果”以及“主要功能主要逻辑”。

与前两个示例相同。

区别在于,此示例中的堆栈是通过双向链表实现的。

4双向链表实现的堆栈可以存储任何类型的数据实现代码:(1)双向链表的头文件(double_link.h)(2)双向链表的实现文件(double_link.c)( 3)双链表(dlink_stack.c)的测试程序操作结果:id = 40,name = danid = 20,name = jodyid = 10,name = sky结果描述:本例中的堆栈是通过double实现的链表,可以存储任何类型的数据。

在示例中,结构类型的数据用于演示。

由于已在代码中给出了详细的注释,因此此处将不再介绍。

-END-来源:Blog Garden,作者skywang12345原地址https://www.cnblogs.com/skywang12345/p/3562239.html

cache
打开客服菜单