C语言实现栈(顺序存储方式)
2018-12-04 07:12:45来源:博客园 阅读 ()
#include <stdio.h> #include <stdlib.h> //提供malloc()原型 #include <stdbool.h> //提供true false原型 #define MaxSize 10 #define ERROR -1 typedef struct SNode *Stack; typedef int ElementType ; struct SNode { ElementType *Data; //数组存放数据 int Top; //top指明栈顶的位置 int Maxsize; //堆栈最大容量 }; Stack CreateStack(int Max) { Stack S = (Stack)malloc(sizeof(struct SNode)); S->Data = (ElementType *)malloc(Max * sizeof(ElementType)); S->Top = -1; S->Maxsize = Max; return S; } bool Push(Stack PtrS,ElementType item) { if(PtrS->Top==MaxSize-1) //判断数组是否已满 { printf("堆栈已满!"); return false; } else { PtrS->Data[++(PtrS->Top)] = item; //添加元素并更新top return true; } } ElementType Pop(Stack PtrS) { if(PtrS->Top == -1) { printf("堆栈空"); //判断数组是否已空 return ERROR; } else { return (PtrS->Data[(PtrS->Top)--]); //返回值并更新top } } int main() { Stack Ptr; int Tmp; Ptr=CreateStack(10); //初始化栈 Push(Ptr,10); //在数组0的位置Push 数值10 Tmp = Pop(Ptr); // 取出栈的最上面的值赋给变量Tmp printf("%d",Tmp); return 0; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- opencv-12-高斯滤波-双边滤波(附C++代码实现) 2020-05-10
- 二叉排序树 2020-05-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash