1. 程式人生 > >棧的 基本操作

棧的 基本操作

get truct %d logs else span clu cnblogs n)

一.實驗內容: 棧的初始化、進棧與出棧等基本操作

二.程序清單

三.思考

如果兩個棧共用一個存儲空間,該如何解決?

#define stackinitsize 20
#define stackincrement 8
#include <stdlib.h>
#include <stdio.h>
typedef struct{
  int *base;    
  int *top;
  int stacksize;
}sqstack;

int  initstack(sqstack &s)
  {s.base=(int * ) malloc(stackinitsize*sizeof
(int)); s.top=s.base; s.stacksize=stackinitsize; return 1; } int push(sqstack &s,int e) { *(s.top)=e; s.top++; return 1; } int gettop(sqstack s) { return *(s.top-1); } int emptystack(sqstack s) {if (s.top==s.base) return 1; else return 0; } int pop(sqstack &s,int
&e) { if (emptystack(s)) return 0; --s.top; e=*(s.top); return 1; } int main() { sqstack s; int n,i,e; initstack(s); scanf("%d",&n); for(i=1;i<=n;i++) {scanf("%d",&e); push(s,e); } while(!emptystack(s)) {pop(s,e); printf("%d ",e); } }

棧的 基本操作