前言
提示:本篇文章收录严蔚敏编写的数据结构C语言版本
简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别
代码参考严蔚敏编写的《数据结构》,二维码动态演示可扫码可观看。
—
提示:结合教材更容易理解
文章目录
一、代码的宏定义、重定义、名称解释。
代码如下(示例):
#include<iostream>
#define OK 1 //算法成功实现返回1
#define ERROR -1 //算法错误返回-1
#define OVERFLOW -2 //错误返回值
#define MAXSIZE 100 //数组最大容量
using namespace std; // c++
typedef int Status; //重命名 int为Status
typedef char Elemtype; //重命名 cahr为Elemtype(元素类型)
SqList代表顺序表,SqStack代表顺序栈,SqQueue代表顺序队列
二、三种线性表
顺序表、顺序栈、循环链表五个算法
1.顺序存储结构
代码如下(示例):
typedef struct {
//顺序表存储结构
Elemtype * elem; //数组基地址 a[0]中a的地址
int length; //顺序表表长
}SqList; //顺序表的结构类型为SqList
typedef struct {
//顺序栈存储结构
Elemtype *base; // 栈底指针,指向栈底不变化
Elemtype *top; //栈顶指针 只移动栈顶指针,top++ top--
int Stacksize; //栈的最大容量
}SqStack;
typedef struct {
//循环队列顺序存储结构
Elemtype *base; //基地址 a[10]的a
int front; //头指针 处理出队操作
int rear; //尾指针 处理入队操作
}SqQueue;
2.初始化
代码如下(示例):
Status Initlist(SqList &l ){
//顺序表初始化
l.elem=new Elemtype [MAXSIZE]; //申请elem[100]
if(!l.elem) return ERROR; // 申请失败退出
l