我们上次说到了定长顺序表,这次来说说不定长的,我们还是先来引用一下数据结构C语言(严蔚敏)课本上的讲解。
我们可以看到不定长顺序表增加了一个Listsize,课本上说指顺序表当前分配的存储空间大小,用白话来说就是它这个顺序表有多少个格子*sizeof(格子基类型)得出的大小,不定长顺序表因为要扩大表容,所以我们采用动态开辟顺序表的方法实现,它的逻辑地址和定长顺序表是一样的。
我们还是定义三个文件,两个.cpp,一个.h
先来写desqlit.h
#pragma once
//不定长顺序表
#define INITSIZE 10
typedef struct DSeqList
{
int *elem;//保存动态创建存放数据内存的地址
int length;//有效数据个数
int listsize;//总单元个数(总格子数)
}DSeqList,*PDSeqList;//12
void InitSeqList(PDSeqList ps);
bool Insert(PDSeqList ps,int pos,int val);
bool DeletePos(PDSeqList ps,int pos);
int Search(PDSeqList ps,int key);
bool DeleteVal(PDSeqList ps,int key);
bool IsEmpty(PDSeqList ps);