跨年了,祝大家新年快乐!!!有多少人还在写代码呢?
链栈:我是以链尾为栈底,链头为栈顶,采用头插法入栈,当然并非这一种做法。
见代码(有注释):
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR -1
typedef int Status;
typedef struct Node{
int data; //结点的数据域
struct Node *next; //结点的指针域
}Node,*LinkList;
//*******************************************//
// 链式(单链表——带头结点,也可不带表头)实现栈处理时,规定
// 1、将单链表的最后一个元素的next指针(值为NULL)设为栈底;
// 2、头结点指向的数据为栈顶元素
// 3、当栈顶指针为空时,则栈空
//*******************************************//
void ShowMenu()
{
printf("\n");
printf("\n****************链栈基本操作****************\n\n");
printf("\t\t1 数据入栈\n");
printf("\t\t2 数据出栈\n");
printf("\t\t3 读取栈顶元素\n");
printf("\t\t4 读取栈中所有元素\n");
printf("\t\t5 清除栈中数据\n");
printf("\t\t0 退出系统\n");
printf("\n****************链栈基本操作****************\n\n");
printf("\n");
}
//功能:带表头的链栈初始化
Status Init_Stack(LinkList &S)
{
S = (LinkList)malloc