数据结构---顺序存储总结
2021-08-26 本文已影响0人
喜忧参半
顺序表
顺序表是采用顺序存储的方式存储的线性表。
顺序表是将表中的结点依次存放在计算机内存中的一组地址连续的存储单元内。
若顺序表中每个结点需要占用size个内存单位,则
#define MAXSIZE 20
typedef int datatype;
/* Ele类型根据实际情况而定,这里设为int*/
typedef struct
{
datatype data[MAXSIZE]; /* 数组,存储数据元素 */
int length; /* 线性表当前长度 */
}sequence_list;
顺序表的操作集合
void init(sequence_list *slt) //顺序表的初始化-置空表
//在顺序表后部进行插入操作
void append(sequence_list *slt,datatype x)
//打印顺序表的各结点值
void display(sequence_list slt)
//判断顺序表是否为空
int empty(sequence_list slt)
//查找顺序表中值为x的结点位置
int find(sequence_list slt,datatype x)
//取得顺序表中第i个结点的值
datatype get(sequence_list slt,int i)
//在顺序表的position位置插入值为x的结点
void insert(sequence_list *slt,datatype x,int position)
//删除顺序表中第position位置的结点
void delete(sequence_list *slt,int position)
顺序栈
顺序栈:插入运算和删除运算均在线性表同一端进行的线性表。
进行插入和删除的那一端称为栈顶,另一端称为栈底。
栈具有后进先出或先进后出的性质(FILO)
#define MAXSIZE 100
typedef int datatype; /*实际情况而定*/
typedef struct
{
datatype data[MAXSIZE]; /* 数组,存储数据元素 */
int top; /* top是栈顶指针*/
}sequence_stack;
顺序栈的操作集合
void init(sequence_stack *st)//栈(顺序存储)初始化
// 判断栈(顺序存储)是否为空
int empty(sequence_stack st)
//读栈顶(顺序存储)结点值
datatype read(sequence_stack st)
//栈(顺序存储)的插入(进栈)操作
void push(sequence_stack *st,datatype x)
//栈(顺序存储)的删除(出栈)操作
void pop(sequence_stack *st)
顺序队列
顺序队列:插入运算和删除运算分别在表的两端进行的线性表。
插入的那一端称为队尾,删除的那一端称为队首。
队列具有先进先出的性质(FIFO)
#define MAXSIZE 100
typedef int datatype; /*实际情况而定*/
typedef struct
{
datatype data[MAXSIZE]; /* 数组,存储数据元素 */
int front; //队首指针
int rear; //队尾指针
}sequence_queue;
顺序队列的操作集合
//队列(顺序存储)初始化
void init(sequence_queue *sq)
//判断队列(顺序存储)是否为空
int empty(sequence_queue sq)
//打印队列(顺序存储)的结点值
void display(sequence_queue sq)
//取得队列(顺序存储)的队首结点值
datatype get(sequence_queue sq)
//队列(顺序存储)的插入(进队)操作
void insert(sequence_queue *sq,datatype x)
//队列(顺序存储)的删除(出队)操作
void delete(sequence_queue *sq)