c语言怎么往栈中输入元素,C语言栈操作
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
/*包括初始化棧,判斷棧是否為空,出棧,入棧,檢查棧頂元素,輸出棧內元素*/
#include "stdio.h"
#include "stdlib.h"
#define MAX 1024
struct data
{
int data[MAX];
int top;
};
typedef struct data SEQSTACK;
SEQSTACK *init_seqstack(void) /*初始化棧*/
{
SEQSTACK *head;
head=(SEQSTACK *)malloc(sizeof(SEQSTACK));
if(!head)
return NULL;
else
{
head->top=-1;
return head;
}
}
int empty_seqstack(SEQSTACK *head) /*判斷棧是否為空*/
{
if(head->top==-1)
return 0;
else
return 1;
}
int push_seqstack(SEQSTACK *head,int num) /*入棧*/
{
if(head->top==MAX-1)
return 1;
else
{
head->top++;
head->data[head->top]=num;
return 0;
}
}
int pop_seqstack(SEQSTACK *head,int *num) /*出棧*/
{
if(!empty_seqstack(head))
return 1;
else
{
*num=head->data[head->top];
head->top--;
return 0;
}
}
int top_seqstack(SEQSTACK *head) /*棧頂元素*/
{
if(!empty_seqstack(head))
return 0;
else
return head->data[head->top];
}
int print_seqstack(SEQSTACK *head) /*輸出棧內元素*/
{
if(!empty_seqstack(head))
return 1;
else
{
int i;
printf("當前棧中的元素:");
for(i=head->top;i>=0;i--)
printf("%d ",head->data[i]);
printf("\n");
return 0;
}
}
int main(void)
{
SEQSTACK *head;
int n,i,num;
head=init_seqstack();
printf("初始化完成!\n");
printf("棧空:%d\n",empty_seqstack(head));
printf("請輸入入棧元素個數:");
scanf("%d",&n);
printf("請輸入%d個要入棧的元素:",n);
for(i=0;i
{
scanf("%d",&num);
push_seqstack(head,num);
}
print_seqstack(head);
printf("棧頂元素:%d\n",top_seqstack(head));
printf("請輸入要出棧的元素個數(不能超過%d個):",n);
scanf("%d",&n);
printf("依次出棧的元素:");
for(i=0;i
{
pop_seqstack(head,&num);
printf("%d ",num);
}
printf("\n");
print_seqstack(head);
printf("棧頂元素:%d\n",top_seqstack(head));
return 0;
}
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的c语言怎么往栈中输入元素,C语言栈操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想买高档一点的地板,高端定制地板什么品牌
- 下一篇: c语言从集合中随机选取一个值,从集合中挑