代码是自己写的。
我的顺序表是以1为开始的下标,和书上的不一样。其中习题部分的代码是我自己写的,和书中答案不太一样,比如习题第8题,觉得书上答案用三次倒置操作很智障,自己写的代码多消耗了点空间,但时间效率比答案好。
#include <bits/stdc++.h>
#define MAX_SIZE 50
using namespace std;
//顺序表
typedef int ElemType;
typedef struct SqList
{
ElemType data[MAX_SIZE];
int length;
} SqList;
//插入节点
bool ListInsert(SqList &L, int i, ElemType e)
{
if(i<1||i>L.length+1)
return false;
if(L.length>=MAX_SIZE)
return false;
for(int j=L.length+1; j>i; j--)
{
L.data[j]=L.data[j-1];
}
L.data[i]=e;
L.length++;
return true;
}
//删除
bool ListDelete(SqList &L, int i, ElemType &e)
{
if(i<1||i>L.length+1)
return false;
e=L.data[i];
for(int j=i; j<L.length; j++)
{
L.data[j]=L.data[j+1];
}
L.length--;
return true