C语言实现栈(栈的链式实现)
来源:互联网 发布:词典软件 推荐 编辑:程序博客网 时间:2024/05/22 13:42
#include <stdio.h>#include <stdlib.h>/* 栈的创建及其应用 */typedef struct Node{ int data; struct Node *next;}Node, *Pnode;typedef struct Stack{ Pnode top; Pnode base;}Stack, *Pstack;//创建一个空栈 Pstack createStack(){ Pnode pnode = (Pnode)malloc(sizeof(Node)); pnode->next = NULL; Pstack pstack = (Pstack)malloc(sizeof(Stack)); pstack->top = pnode; pstack->base = pnode; return pstack; }//入栈Pstack push(Pstack pstack, int data){ Pnode pnode = (Pnode)malloc(sizeof(Node)); pnode->data = data; pnode->next = pstack->top; pstack->top = pnode; return pstack;}//出栈int pop(Pstack pstack){ if(pstack->base == pstack->top){ printf("栈为空!\n"); return 0; } Pnode p = pstack->top; pstack->top = p->next; int data = p->data; free(p); return data;} //获取栈顶元素int getTop(Pstack pstack){ if(pstack->base == pstack->top){ printf("栈为空!\n"); return 0; } return pstack->top->data;} int isStackEmpty(Pstack pstack){ if(pstack->base == pstack->top) return 1; return 0;}//利用栈进行进制转化,把非负十进制转化为任意进制void conversion(){ int n; int d; printf("输入要转化的十进制数和要转化的进制:"); scanf("%d %d",&n,&d); Pstack pstack = createStack(); int temp; while(n){ push(pstack,n%d); n = n/d; } printf("转化为%d进制为:"); while(!isStackEmpty(pstack)){ printf("%d",pop(pstack)); } printf("\n");} int main(int argc, char *argv[]) { /* Pstack pstack = createStack(); pstack = push(pstack,1); pstack = push(pstack,2); printf("%d\n",getTop(pstack)); printf("%d\n",pop(pstack)); printf("%d\n",pop(pstack)); printf("%d\n",pop(pstack)); */ conversion(); return 0;}
阅读全文
0 0
- 栈的链式实现(C语言)
- C语言实现栈(栈的链式实现)
- 用c语言实现的链式栈
- 链式栈的C语言实现
- C语言反向链式栈的实现
- C语言实现的一个链式栈
- 栈的链式存储实现c语言
- C语言实现链式栈
- 数据结构:栈的链式实现(C语言描述)
- 栈的链式实现(C语言描述)
- c链式栈的实现
- 链式栈的C实现
- 数据结构-链式栈-C语言实现
- 链表实现链式栈 c语言
- 链式栈的实现(ANSI C)
- C语言链式栈和顺序栈的实现
- (C语言)栈的链式实现(数据结构九)
- 用C语言实现栈的链式存储
- NOIP2017普及组复赛 T1
- windows串口通讯(读和写,很方便!!)
- 依赖注入和控制反转
- 1004. 成绩排名 (20)
- C语言二分查找
- C语言实现栈(栈的链式实现)
- 封装Activity
- 天耀18期 – 07.面向对象-继承、访问权限【作业】
- PullToRefresh上拉和下拉简单实现
- 视频同步项目中的一些问题
- flask-bootstrap插件
- Spring boot 十三 读取 环境变量
- LeetCode 191. Number of 1 Bits (Easy)
- axios.js