<浙大>数据结构·1.4栈的链表储存[线性结构]
1.4栈的链表储存[线性结构]
- 栈的链式存储结构实际上就是一个单链表,叫做链栈。插入和删除操作只能在链栈的栈顶进行。
主要操作的实现:
#include <iostream>
#include <algorithm>
using namespace std;
// 1.4栈的链表储存[线性结构]
#define MAXSIZE 100 // 堆栈元素的最大个数
typedef int ElementType; // ElementType 暂时定义为 int 类型
typedef struct SNode *Stack;
struct SNode{
ElementType Data; // 存储堆栈元素
Stack Next; // 记录栈顶元素下标
};
Stack CreateStack(); // 初始化链栈
int IsEmpty(Stack S); // 判断链栈是否为空
void Push(Stack S,ElementType item); // 入栈
ElementType Pop(Stack S); // 出栈
// 初始化
Stack CreateStack()
{
Stack S = new struct SNode;
Stack Next = NULL;
return S;
}
// 是否为空
int IsEmpty(Stack S)
{
return(S->Next == NULL);
}
// 入栈
void Push(Stack S, ElementType item)
{
Stack temp = new struct SNode;
temp->Data = item;
temp->Next = S->Next;
S->Next = temp;
}
// 出栈
ElementType Pop(Stack S)
{
Stack First = S->Next;
ElementType TopVal;
if(IsEmpty(S))
{
cout << "IsEmpty !" << endl;
return 0;
}
else
{
TopVal = First->Data;
S->Next = First->Next;
delete First;
return TopVal;
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Panzer_Jack の 博客!
评论