本学期刚刚学数据结构,如果有不对的地方,还请大家指正,共同进步~~~~~
一.顺序表基本运算的实现
1.建立顺序表(此处只是简单的实现了将一个数组元素复制到L的data数组中)
//该算法实现了将数组a[]中的元素依次复制到L的data数组中
void Createlist(SqList *&L,ElemType a[],int n)
{
int i=0,k=0;
while(i<n){
L->data[i]=a[i];
k++;//用来记录线性表的长度
i++;
}
L->length=k;
}
2.线性表的初始化
注:malloc和下面出现的free函数头文件均为<stdlib.h>
void Initlist(SqList *&L) {
L=(SqList*)malloc(sizeof(SqList));//动态分配空间
L->length=0;//刚开始线性表里没有存入元素,长度为0
}
3.线性表的销毁
void DesList(SqList *&L){
free(L);//释放L所指的空间
}
4.判断线性表是不是空表
//直接使用布尔类型判断线性表的长度是否等于0
bool ListEmpty(SqList *L){
return (L->length==0);
}
5.输出线性表的元素
void printList(SqList *L){
for(int i=0;i<L->length;i++){//使用循环输出
printf("%d",L->data[i]);
}
}
6.输出线性表中指定编号的元素,并用e返回指定编号元素的值
bool GetElem(SqList *L,int n,ElemType e) {
if(L==NULL)
return false;
else{
e=L->data[n-1];
return true;
}
}