栈的数据的–新增、删除、输出
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 100
void push_f(void); //入栈函数
void pop_f(void); //出栈函数
void list_f(void); //输出函数
char item[MAX][20];
int top = -1;
void main(void)
{
char option;
while (1)
{
printf("\n*************************************\n");
printf(" <1>insert(push)\n");
printf(" <2>delete(push)\n");
printf(" <3>list(push)\n");
printf(" <4>quit(push)\n");
printf("\n*************************************\n");
printf("Please enter your choice......");
option = _getche();
switch (option)
{
case '1':
push_f();
break;
case '2':
pop_f();
break;
case'3':
list_f();
break;
case'4':
exit(0);
}
}
}
void push_f()
{
if (top >= MAX - 1) //当堆栈已满时,显示错误
printf("\n\nStack is full!\n");
else
{
top++;
printf("\n\nPlease enter item to insert:");
gets(item[top]);
}
}
void pop_f()
{
if (top < 0) //当堆栈没有数据存在时,则显示错误
printf("\n\nNo item,stack is empty!\n");
else
{
printf("\n\nItem %s deleted\n",item[top]);
top--;
}
}
void list_f()
{
int count = 0, i;
if (top < 0)
printf("\n\nNo item,stack is empty\n");
else
{
printf("\n\n ITEM\n");
printf("---------------------------------------\n");
for (i = 0; i <= top; i++)
{
printf(" %-20s\n",item[i]);
count++;
if (count % 20 == 0) getchar();
}
printf("---------------------------------------\n");
printf(" Total item:%d\n",count);
getchar();
}
}