设计包含min函数的栈
来源:互联网 发布:mac win7激活密钥 编辑:程序博客网 时间:2024/05/16 09:11
废话不多少 直接帖代码,注意函数传递参数的类型
#include <stdio.h>#include <stdlib.h>//模拟包含栈中最小元素的栈struct MinStackElement{ int value; int mini;};struct MinStack{ struct MinStackElement* data;//栈的空间 int size; //栈的大小 int top;//记录栈顶的位置,可以push的位置};struct MinStack initialStack(int maxSize){ struct MinStack minStack; minStack.size=maxSize; minStack.top=0; minStack.data=(struct MinStackElement*)malloc(sizeof(struct MinStackElement)*maxSize); printf("initial stack success!!!!\n"); return minStack;}void minStackPush(int value,struct MinStack *stack){ printf("pushing %d to stack",value);if(stack->top==stack->size){ printf("sorry the stack is full!!! cannot push\n"); return;}struct MinStackElement* topElement=&(stack->data[stack->top]); topElement->value=value; topElement->mini=(stack->top==0)?value:(stack->data[stack->top-1].mini); if(value<topElement->mini){ topElement->mini=value; } //printf("现在栈顶的最小值是:%d\n",topElement->mini); stack->top++;//别忘了把top指针++ printf(" successful\n");}int minStackPop(struct MinStack *stack){//要修改stack的top的嘛,得改变stack所以要传指针if(stack->top==0){ printf("stack is empty!!!! cannot pop\n"); return 0;} return stack->data[--stack->top].value;}int minStackMinValue(struct MinStack stack){ if(stack.top==0){ printf("there is no element in this stack\n"); return 0; } return stack.data[stack.top-1].mini;}int main(){ int maxSize=10; int test[]={92,45,23,10,75,38,83,92,10,7}; struct MinStack myStack=initialStack(maxSize); for(int i=0;i<10;i++){ minStackPush(test[i],&myStack); printf("current min value in stack is %d\n",minStackMinValue(myStack)); printf("-----------------------------------------------\n"); } for(int j=0;j<10;j++){ printf("%d is poping from stack\n",minStackPop(&myStack)); printf("-----------------------------------------------\n"); } return 0;}
- 设计包含min函数的栈
- 设计包含min函数的栈
- 转载 设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含 min 函数的栈
- 设计包含min函数的栈
- 2.设计包含min函数的栈
- 2、设计包含min 函数的栈
- 设计包含min函数的栈---Algorithms
- 设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含min函数的栈
- 2.设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含min函数的栈
- 设计包含min函数的栈
- (CSDN)让开发者高效编程的10个新框架
- zipInputStream 应用
- UFT11.5 问题持续记录
- httpURLConnection httpClient
- java反射详解
- 设计包含min函数的栈
- MySQL常见错误
- LINUX各目录功能介绍及路径写法
- java创建文件和目录
- 视图的INSERT、UPDATE、DELETE注意事项
- RGB、HSV和Lab颜色空间
- 王爽 汇编语言 笔记
- ldconfig的使用
- 企业应用微型Windows服务架构