顺序栈
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define false 0 5 #define true 1 6 7 typedef int ElementType; 8 typedef int bool; 9 typedef int Position; 10 typedef struct SNode *PtrToSNode; 11 struct SNode 12 { 13 ElementType *Data; 14 Position Top; 15 int MaxSize; 16 }; 17 typedef PtrToSNode Stack; 18 19 20 Stack CreateStack(int MaxSize); //顺序栈的构建 21 bool IsEmpty(Stack S); //判断栈是否为空 22 bool IsFull(Stack S); //判断栈是否已满 23 bool Push(Stack S, ElementType X); //入栈 24 ElementType Pop(Stack S); //出栈 25 26 27 28 Stack CreateStack(int MaxSize) //顺序栈的构建 29 { 30 Stack S = (Stack)malloc(sizeof(struct SNode)); 31 S->Data = (ElementType *)malloc(MaxSize * sizeof(ElementType)); 32 S->Top = -1; 33 S->MaxSize = MaxSize; 34 return S; 35 } 36 37 bool IsEmpty(Stack S) //判断栈是否为空 38 { 39 return (S->Top == -1); 40 } 41 42 bool IsFull(Stack S) //判断栈是否已满 43 { 44 return (S->Top == S->MaxSize-1); 45 } 46 47 bool Push(Stack S, ElementType X) //入栈 48 { 49 if(IsFull(S)) 50 { 51 printf("栈已经满了,入栈失败!\n"); 52 return false; 53 } 54 else 55 { 56 ++S->Top; 57 S->Data[S->Top] = X; 58 return true; 59 } 60 } 61 62 ElementType Pop(Stack S) //出栈 63 { 64 if(IsEmpty(S)) 65 { 66 printf("栈为空,出栈失败!\n"); 67 return false; 68 } 69 else 70 return (S->Data[(S->top)--]); 71 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南