C語言陣列實現棧操作
阿新 • • 發佈:2018-12-23
#include <stdio.h>
#include <stdlib.h>
int * array=NULL;//存放棧元素的陣列
int count=0;//當前棧的元素個數
//初始化棧
void init_stack(int size)
{
array=(int *)malloc(sizeof(int)*size);
if(!array)
{
printf("建立棧失敗");
return ;
}
}
//向棧中壓入元素
void push( int val)
{
array[count++]=val;
}
//輸出棧頂元素
int peek()
{
if(length_stack()==0)
{
printf("此棧為空棧\n");
return 0;
}
return array[count-1];
}
//輸出棧頂頂頂元素並且刪除棧頂元素
int pop()
{
int length=length_stack();
if(length==0)
{
printf("已經到棧底啦\n");
return -1;
}
int val=peek();
count--;
return val;
}
//求棧的長度
int length_stack()
{
return count;
}
//列印棧的資訊
void print_stack()
{
int i=length_stack()-1;
while(i>=0)
{
printf("%d ",array[i--]);
}
}
int main()
{
init_stack(100);
push(2);
pop();
pop();
int val= peek();
printf("棧頂元素為:%d\n",val);
int size=length_stack();
printf("棧的大小為:%d\n",size);
print_stack();
}