1.什么叫堆栈?

2.堆栈的数据类型描述

3.堆栈顺序存储的C语言实现

#include<stdio.h>
#include<stdlib.h>#define MaxSize 10
#define ERROR -1
#define ElementType int
typedef struct SNode *Stack;
struct SNode{ElementType Data[MaxSize];int Top;
};Stack PtrS;
//1.初始化
Stack MakeEmpty()
{Stack PtrS;PtrS = (Stack)malloc(sizeof(struct SNode));PtrS->Top=-1;return PtrS;
}//2.入栈
void Push(ElementType item,Stack PtrS)
{if(PtrS->Top==MaxSize){printf("栈已满\n");return;}else{PtrS->Data[++(PtrS->Top)]=item;return;}
}//3.出栈
ElementType Pop(Stack PtrS)
{if(PtrS->Top==-1){printf("栈为空\n");return ERROR;}else{return PtrS->Data[(PtrS->Top)--];}
}int main()
{int i;PtrS=MakeEmpty();Push(23,PtrS);Push(28,PtrS);Push(78,PtrS);for(i=0;i<=PtrS->Top;i++ ){printf("%d  ",PtrS->Data[i]);}printf("\n");printf("出栈为:%d\n",Pop(PtrS));for(i=0;i<=PtrS->Top;i++ ){printf("%d  ",PtrS->Data[i]);}   printf("\n");return 0;
}

4.堆栈链式存储的C语言实现

#include<stdio.h>
#include<stdlib.h>#define ElementType int
typedef struct SNode *Stack;
struct SNode{ElementType Data;Stack Next;
};
Stack PtrS;//1.初始化
Stack MakeEmpty()
{Stack PtrS;PtrS = (Stack)malloc(sizeof(struct SNode));PtrS->Next=NULL;return PtrS;
}//2.判断堆栈是否为空,空为1,不空为0
int IsEmpty(Stack PtrS)
{return (PtrS->Next==NULL);
}//3.入栈
void Push(ElementType item,Stack PtrS)
{Stack TmpCell;TmpCell = (Stack)malloc(sizeof(struct SNode));TmpCell->Data=item;TmpCell->Next=PtrS->Next;PtrS->Next=TmpCell;
}//4.出栈
ElementType Pop(Stack PtrS)
{ElementType TopElement;Stack FirstCell;if(IsEmpty(PtrS)){printf("栈为空\n");return 0;}else{FirstCell=PtrS->Next;PtrS->Next=FirstCell->Next;TopElement=FirstCell->Data;free(FirstCell);return TopElement;}
}int main()
{int i;PtrS=MakeEmpty();Push(41,PtrS);printf("%d\n",PtrS->Next->Data);Push(14,PtrS);Push(67,PtrS);Stack S=PtrS;for(i=0;i<3;i++){S=S->Next;printf("%d  ",S->Data);}printf("\n");Stack S2=PtrS;printf("出栈为:%d\n",Pop(S2));for(i=0;i<2;i++){S2=S2->Next;printf("%d  ",S2->Data);}printf("\n");return 0;
}

数据结构——堆栈的C语言实现相关推荐

  1. 【数据结构-堆栈(顺序存储)GO语言实现】

    [数据结构-堆栈(顺序存储)GO语言实现] 顺序存储的堆栈可以看作是一个操作被限制的数组,遵循着后进先出**(LIFO)**的原则. 顺序存储的堆栈代码arrayStack.go package st ...

  2. 数据结构堆栈 内存堆栈_了解堆栈数据结构

    数据结构堆栈 内存堆栈 In this article, we'll be understanding the working and the need for the Stack Data Stru ...

  3. 数据结构堆栈 内存堆栈_零堆栈数据科学家第二部分秋天

    数据结构堆栈 内存堆栈 In Hollywood, it is known that the sequels are rarely better than the original movie/par ...

  4. 数据结构python课后答案_数据结构与算法:Python语言描述 1~5章课后习题

    数据结构与算法:Python语言描述 1~5章课后习题 发布时间:2018-07-19 20:42, 浏览次数:1885 , 标签: Python MarkDown语法写的,不知道为啥上传到CSDN不 ...

  5. 《数据结构与算法 C语言版》—— 3.8习题

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第3章,第3.8节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.8习题 1名 ...

  6. 《数据结构与算法 C语言版》—— 2.5上机实验

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.5节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5上机实验 实 ...

  7. 《数据结构与算法 C语言版》—— 2.7习题

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.7节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7习题 1描 ...

  8. 数据结构与算法分析 C++语言描述第四版.Mark Allen Weiss

    数据结构与算法分析 C++语言描述第四版.Mark Allen Weiss 可用于自学数据结构与算法,数据结构与算法分析对于C++的学习至关重要,应该努力掌握好! 百度网盘: 链接:https://p ...

  9. python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...

最新文章

  1. nsis帮助文档_使用NSIS打包程序
  2. u盘驱动 内核代码阅读 2.6.11.12版本
  3. android 上下扫描动画,Android扫描雷达动画
  4. 洛谷2015 二叉苹果树 树形DP
  5. angular4设置全局变量_angularjs 设置全局变量的7种方法
  6. 变量是否在数组内c语言,函数内创建的数组在调用后,是否就不存在
  7. 【粉丝需求】如何把一个前端网页都搞下来?
  8. 做网络需要掌握的56句话
  9. 《Act with Prudence》读后感
  10. Tomcat服务器内存修改
  11. java enum private_初步理解Java枚举类型
  12. Python学习笔记一(Python数据类型)
  13. sql 结果相加_SQL联结语句
  14. 搭建python本地源
  15. KL散度、JS散度和交叉熵
  16. 三极管放大电路的基本原理
  17. 2022年帝国CMS7.5内核精仿《5288商机网》二次开发多个功能,运营级
  18. SoftICE使用(2)-网络远程调试zz xfocus
  19. 硬盘/分区克隆:怎么无损迁移老硬盘数据到新硬盘?
  20. 巨富笔记:上者劳人,中者劳智,下者劳力

热门文章

  1. 02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)
  2. LeetCode MySQL 1211. 查询结果的质量和占比
  3. LeetCode 1469. 寻找所有的独生节点
  4. LeetCode 1165. 单行键盘(哈希)
  5. 程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)
  6. LeetCode 143. 重排链表(链表反转+快慢指针)
  7. mysql正则表达式配置_G. MySQL正则表达式
  8. fileinputstream_Java I/O 流之 FileInputStream
  9. Python设计模式之模板方法模式实例详解
  10. 怎么画单极交流放大电路波形图_区别在哪?:VCC、VDD、VEE、VSS、数字地、模拟地、信号地、交流地、直流地!...