数据结构 -- 栈(二)
用链表实现栈
1 /****************************** 2 * 3 * 用链表表示栈 4 * 5 *******************************/ 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 10 typedef struct linkStack{ 11 char data; 12 struct linkStack* next; 13 }linkStack; 14 15 linkStack* push(linkStack* stack, char a) 16 { 17 linkStack* link = (linkStack*)malloc(sizeof(linkStack)); 18 link->data = a; 19 link->next = stack; 20 stack = link; 21 22 return link; 23 } 24 25 linkStack* pop(linkStack* stack) 26 { 27 if(stack) 28 { 29 linkStack* p = stack; 30 stack = stack->next; 31 printf("出栈元素:%c \n",p->data); 32 33 if(stack) 34 { 35 printf("栈顶元素:%c \n",stack->data); 36 } 37 else 38 { 39 printf("栈已空 \n"); 40 } 41 free(p); 42 } 43 else 44 { 45 printf("栈内没有元素\n"); 46 return stack; 47 } 48 49 return stack; 50 } 51 52 int main() 53 { 54 linkStack* stack = NULL; 55 56 stack = push(stack, 'a'); 57 stack = push(stack, 'b'); 58 stack = push(stack, 'c'); 59 stack = push(stack, 'd'); 60 stack = pop(stack); 61 stack = pop(stack); 62 stack = pop(stack); 63 stack = pop(stack); 64 stack = pop(stack); 65 66 return 0; 67 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)