堆栈

用一个整形数组实现一个有固定上界为100个的堆栈,实现push,pop,size方法并编写代码对堆栈进行功能测试,语言使用Java,C#或C++均可
全部评论
#include <stdio.h> #include <sys/types.h> #include <stdbool.h> #include <stdlib.h> struct Stack {     int* array;     int top;     size_t size; }stack; /*初始化*/ void init(stack* S) {     S->array=(int*)malloc(sizeof(100));     S->top=-1;     S->size=0; } /*判空*/ bool empty(stack* S) {     if(S->size==0)         retun true;     else         return false; } /*判满*/ bool full(stack* S) {     if(S->size==100)         return true;     else         return false; } /*进栈*/ void push(stack* S,int data) {     if(!full(S))     {         top++;         S->array[top]=data;         S->size++;     } } /*出栈*/ int pop(stack* S) {     if(!empty())     {         int data=S->array[top--];         S->size--;         return data;     } } /*存有多少元素*/ size_t size(stack* S) {     return S->size; } /*销毁并恢复到初始状态*/ void destroy(stack* S) {     S->size=0;     S->top=-1;     free(S->array);     S->array=NULL; } int main(void) {     stack STACK;     init(&STACK);     for(int i=0;i<100;i++)         if(!full(&STACK))             push(&STACK,i);     printf("size=%d\n",size(&STACK));     while(!empty(&STACK))         printf("%d ",pop(&STACK));     printf("\n");     printf("size=%d\n",size(&STACK));     destroy(&STACK);     return 0; }
点赞 回复 分享
发布于 2015-04-03 22:41

相关推荐

牛客928043833号:在他心里你已经是他的员工了
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务