📄 main.c
字号:
#include "head.h"
void main(int argc,int *argv[])
{
JD *phead = NULL;
JD *pnew = NULL;
JD *ptop = NULL;
JD ptemp;
JD *pointer = NULL;
int i ;
int flag = 1;
int num;
/***************充分考虑用指针函数调用**************/
JD* (*intput_stack)();
JD* (*output_stack)();
void (*function)();
intput_stack = push;
output_stack = pop;
function = menu;
/****************************************************/
phead = (JD*)malloc(sizeof(JD));
phead->value = 0;
phead->next = NULL;
do
{
(*function)();
printf("请输入:");
scanf("%d",&num);
printf("\n");
switch(num)
{
case 0:
{
flag = 0;
break;
}
case 1:
{
if(ptop != NULL)
{
ptemp.next = NULL;
ptemp.value = 0;
ptop = (*output_stack)(phead,&ptemp,ptop);
printf("栈输出值为:%d\n",ptemp.value);
}
else
{
printf("栈空\n");
}
break;
}
case 2:
{
printf("请输入你想压入栈中的值:");
pnew = (JD*)malloc(sizeof(JD));
scanf("%d",&pnew->value);
printf("\n");
ptop = (*intput_stack)(phead,pnew,ptop);
break;
}
case 3:
{
printf("打印堆栈里面的数据:\n");
if(ptop !=NULL)
{
for(i = 1,pointer = ptop;pointer != NULL;pointer = pointer->next,i++)
{
printf("堆栈第%d层值:%d\n",i,pointer->value);
}
}
else
{
printf("栈空\n");
}
break;
}
default:
{
printf("请输入正确的功能选项:");
printf("\n");
break;
}
}
}while(flag == 1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -