线性表的顺序存储是将线性表中的元素存放在一组连续的存储单元中。使得在线性表中逻辑上相邻的元素在物理存储单元上也是连续的。采用顺序存储的线性表叫做顺序表。
线性表的顺序存储结构如下:
模块化设计:
头文件 结构体和相应函数的定义,声明
#ifndef _SEQLIST_H
#define _SEQLIST_H
#include<iostream>
#include<assert.h>//断言
#include<string.h>
#include<stdlib.h>
using namespace std;
#define ElemType int
#define SEQLIST_DEFAULT_SIZE 10
#define ERROR -1
/*
结构体 用于存贮顺序表基本信息
*/
typedef struct SeqList
{
ElemType *base;
size_t capacity;//顺序表的容量
size_t size;
}SeqList;
int begin();//0
int end(SeqList *list);//表尾
void menu();//菜单函数
void InitSeqList(SeqList *list);//初始化函数
bool isempty(SeqList *list);//判断是否 空
bool isfull(SeqList *list);//判断是否 满
bool push_back(SeqList *list, ElemType x);//尾插函数
bool push_front(SeqList *list, ElemType x);//头插函数
bool pop_back(SeqList *list);//尾删函数
bool pop_front(SeqList *list);//头删函数
bool insert_pos(SeqList *list, ElemType key, ElemType x);//位置插入
bool delete_val(SeqList *list, ElemType key);//按值删除
void show(SeqList *list);//显示函数
int find(SeqList *list, ElemType key);//查找函数
//bool delete_val(SeqList *list, ElemType key);
bool delete_pos(SeqList *list, ElemType key);//位置删除
int getvalue(SeqList*list, ElemType key);//获取某位置的值
bool modify(SeqList *list, ElemType key, ElemType x);//修改函数
void clear(SeqList *list);//清空顺序表
void destroy(SeqList *list);//销毁顺序表
int length(SeqList *list);//返回表长度
int next(SeqList *list, ElemTyp