📄 stack2.cpp
字号:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define OVERFLOW 0
#define OK 1
#define ERROR 0
typedef struct
{
char taskname[10];
int tasknum;
}ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,* LinkList;
int Init_LinkList(LinkList &L)
{
L=(LinkList)malloc(sizeof(LNode));
if(!L)
return OVERFLOW;
L->next=0;
return OK;
}
void Push(LinkList L)
{
ElemType e;
printf("Input taskname:");
scanf("%s",e.taskname);
printf("Input tasknum:");
scanf("%d",&(e.tasknum));
if(L->next==0) //判断是否为空栈
{
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
strcpy((*p).data.taskname,e.taskname);
(*p).data.tasknum=e.tasknum;
p->next=0;
L->next=p;
}
else
{
LinkList p;
p=(LinkList)malloc(sizeof(LNode));
strcpy((*p).data.taskname,e.taskname);
(*p).data.tasknum=e.tasknum;
p->next=L->next;
L->next=p;
}
}
int Pop(LinkList L,ElemType &e)
{
LinkList p;
if(L->next==0) //是否为空栈
return ERROR;
strcpy(e.taskname,(L->next->data).taskname);
e.tasknum=(L->next->data).tasknum;
p=L->next;
L->next=L->next->next;
printf("%15s",e.taskname);
printf("%4.2d\n",e.tasknum);
free(p); //出栈后释放空间
return OK;
}
void main()
{
int i=0;
ElemType e;
LinkList L;
Init_LinkList(L);
for(i;i<5;i++)
Push(L);
for(i=0;i<5;i++)
Pop(L,e);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -