利用C语言实现一些简单的栈操作
来源:互联网 发布:双网卡双网络设置 编辑:程序博客网 时间:2024/05/22 08:07
1.获取栈中的最小值
参考了对该问题的解法,利用C语言实现了带基本功能和getMin功能的栈,同理还可以添加getMax功能,代码如下:
#include <stdio.h>#include <stdlib.h>#define MAX_STACK_SIZE 6typedef struct{ int stack[MAX_STACK_SIZE]; int top;}element;element init(){ element temp; temp.top=-1; return temp;}int isEmpty(element *data){ if(data->top==-1) return 1; else return 0;}int isFull(element *data){ if(data->top>=MAX_STACK_SIZE-1) return 1; else return 0;}int push(int value,element *data){ if(isFull(data)==1) return 0; else data->stack[++(data->top)]=value; return 1;}int pop(element *data){ if(isEmpty(data)==1) return 0; else return data->stack[(data->top)--];} void getMin(element *data,element *min){ int i=0; int value=0; int minTop=0; for(i=0;i<MAX_STACK_SIZE;i++) { printf("please input value to push into stack:\n"); scanf("%d",&value); push(value,data); if(min->top==-1) { push(value,min); } else { minTop=min->stack[min->top]; if(value<minTop) push(value,min); else push(minTop,min); } }}print(element *data){ for(int i=data->top;i>=0;i--) { if(i>0) printf("%d ->",data->stack[i]); else printf("%d",data->stack[i]); } printf("\n");}void main(){ element stackData,stackMin,stackMax; stackData=init(); stackMin=init(); getMin(&stackData, &stackMin); print(&stackData); print(&stackMin); printf("%d\n",stackMin.stack[stackMin.top]);}2.利用两个栈实现队列操作void doubleStack(element *stackPush, element *stackPop){ int i=0; int value=0; for(i=0;i<MAX_STACK_SIZE;i++) { printf("please input value to push into stack:\n"); scanf("%d",&value); push(value,stackPush); } if(isEmpty(stackPop)==1) { while(stackPush->top>-1) { value=pop(stackPush); push(value,stackPop); } }}
0 0
- 利用C语言实现一些简单的栈操作
- C语言的一些简单操作
- C语言实现单链表的简单操作
- 利用数组实现栈的一些操作
- 【C语言】链表的一些简单操作
- 利用c语言实现简单的通信录
- 一些简单的排序算法 c 语言实现
- 二叉树的一些操作(C语言实现)
- C语言 简单的栈操作
- c语言实现最简单的写文件操作
- 用C语言实现MYSQL的简单操作
- C语言实现单链表的简单操作【完整版】
- C语言,简单栈的实现 Stack
- C语言实现一个简单的栈
- [数据结构]栈的C语言简单实现
- C语言实现栈的操作
- C语言实现栈的操作
- C语言实现栈的基本操作
- python __getattr__和__getattribute__
- Android按钮单击事件的四种常用写法总结
- 基于sqlite3的利用数据库实现简单通讯录
- 【51nod 1028 大数乘法 V2】
- 只调用random(0, 1),实现random(a, b)
- 利用C语言实现一些简单的栈操作
- javascript:;与javascript:void(0)使用介绍
- 安卓开发 listviev异步加载网络图片
- Qt中使用mysql连接远程服务器
- C语言一维数组的定义和引用
- Linux 方法 解决 总结 undefined reference
- 【PAT甲级】1063. Set Similarity (25)
- Spring实现AOP的4种方式
- python基础教程——元组