⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack2.cpp

📁 串及矩阵的压缩存储应用,二叉树的构造与遍历,栈的测试和应用,线性表的链存储操作实现 源码加报告
💻 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 + -