栈
特点:先进后出
建立
- 顺序表实现
方法实现
- 入栈
- 出栈
代码
#include<iostream>
using namespace std;
#define MAX 100
typedef int Elemtype;
//栈
typedef struct
{
Elemtype* top, * bot;
int size;
}Stack;
//栈初始化
void InitStack(Stack& s)
{
s.size = MAX;
s.top = s.bot = new Elemtype[s.size];
}
//入栈
void Push(Stack& s, Elemtype data)
{
*(s.top++) = data;
}
//出栈
void Pop(Stack& s, Elemtype& data)
{
data = *(--s.top);
}
//清空栈
void CleanStack(Stack& s)
{
s.top = s.bot;
}
//销毁栈
void DirstStack(Stack& s)
{
delete[] s.bot;
s.top = s.bot = NULL;
s.size = 0;
}
队列
特点:先进先出
方法实现
- 入队
- 出队
#include<iostream>
using namespace std;
#define MAX 100
typedef int Elemtype;
typedef struct
{
Elemtype data[MAX];
int front, rear;
}Queue;
//初始化队列
void InitQueue(Queue& q)
{
q.front = q.rear = 0;
}
//入队列
void EnQueue(Queue& q, Elemtype data)
{
q.data[q.rear++] = data;
}
//出队列
void DeQueue(Queue& q, Elemtype& data)
{
data = q.data[q.front++];
}