考研学习—数据结构—顺序表
作者:
克里斯保罗
,
2022-07-25 13:30:05
,
所有人可见
,
阅读 212
#include <iostream>
using namespace std;
#define Maxsize 100
//顺序表的定义
typedef struct
{
int date[Maxsize]; //数组
int length; //顺序表的长度
}Sqlist; //名字
//初线性表
void InitList(Sqlist &L)
{
L.length = 0;
}
//求表长
int Length(Sqlist L)
{
int length;
for(int i = 0; i < Maxsize; i ++)
if(!L.date[i])
length ++;
return length;
}
//按值查找并返回元素下标
int LocateElem(Sqlist L, int e)
{
for(int i = 0; i < L.length; i ++)
if(L.date[i] == e)
return i;
return false;
}
//按位查找元素并返回第i个元素
int GetElem(Sqlist L, int i)
{
if(L.length == 0||i < 0 || i > L.length) return false;
return L.date[i - 1];
}
//插入操作(在第i个位置上插入元素e)
bool InsertElem(Sqlist &L, int i, int e)
{
if(L.length == Maxsize) return false; //顺序表已满
if(i < 1 || i > L.length + 1) return false; //位置不合法
for(int j = L.length; j >= i; j --)
L.date[j] = L.date[j - 1];
L.date[i - 1] = e;
L.length ++;
return true;
}
//删除操作(删除顺序表中第i个位置,并返回该元素)
int DeleteList(Sqlist &L, int i)
{
int x;
if(i < 1 || i > L.length) return false;
x = L.date[i -1];
for(int j = i; j < L.length; j ++)
L.date[j - 1] = L.date[j];
L.length--;
return x; //返回删除元素的值
}
//判空操作
bool Empty(Sqlist L)
{
if (L.length == 0) return true;
return false;
}
//输出
void OutputList(Sqlist L)
{
for(int i = 0; i < L.length; i ++)
cout << L.date[i] << " ";
}
int main()
{
Sqlist L;
InitList(L);
for(int i = 0; i < 10; i ++)
InsertElem(L, i + 1, i);
InsertElem(L, 2, 3);
OutputList(L);
return 0;
}