顺序表的基本操作
程序员文章站
2024-03-20 14:20:40
...
1:定义结构体
#include<iostream>
using namespace std;
#define Maxsize 15
typedef int DataType;//将DataType的类型指定为int
typedef struct SeqList { //定义结构体SeqList
DataType data[Maxsize];
int SeqLength;
};
2:函数原型
SeqList *Init_SeqList();//初始化
void Display_SeqList(SeqList *L);//输出
void Define_SeqList(SeqList *L, int n);//输入
int Insert_SeqList(SeqList *L, int i, int x);//在i位置插入x
int Delete_SeqList(SeqList *L, int i);//删除i位置的元素
void Find_SeqList(SeqList *L, int x);//查找元素x所在的位置
3:初始化顺序表
SeqList *Init_SeqList()
{
SeqList *L; //新建一个顺序表对象
L = new SeqList;
L->SeqLength = 0;//长度为0,即一开始没有任何元素
return L;
}
4:给顺序表赋值
void Define_SeqList(SeqList *L, int n)
{
cout << "输入数" << endl;
for (int i = 0; i < n; i++)
{
cin >> L->data[i];
L->SeqLength++;
}
}
5:输出顺序表的元素
void Display_SeqList(SeqList *L)
{
for (int i = 0; i < L->SeqLength; i++)
cout << L->data[i] << " ";
cout << endl;
}
6:插入元素
int Insert_SeqList(SeqList *L, int i, int x)
{
if (i<0 || i>L->SeqLength - 1) //判断要插入的位置合不合理
return 0;
if (L->SeqLength == Maxsize) //判断顺序表还有没有空位
return -1;
for (int j = L->SeqLength-1; j >= i; j--) //将i位置后的元素全部后移
{
L->data[j + 1] = L->data[j];
}
L->data[i] = x;
L->SeqLength++;
Display_SeqList(L);
return 1;
}
7:删除元素
int Delete_SeqList(SeqList *L, int i)
{
if (i<0 || i>L->SeqLength - 1) //判断位置合不合理
return 0;
for (int j = i; j < L->SeqLength-1; j++)
{
L->data[j] = L->data[j + 1];
}
L->SeqLength--;
Display_SeqList(L);
return 1;
}
8:查找元素对应的位置
void Find_SeqList(SeqList *L, int x)
{
int k = 0;
for (int i = 0; i < L->SeqLength; i++)
{
if (L->data[i] == x)
{
cout << i << endl;
k++;
}
}
if (k == 0)cout << "未找到相同的数" << endl;
}
9:主函数的实现
int main()
{
SeqList *L;
L = Init_SeqList();
Define_SeqList(L, 6);
Display_SeqList(L);
Insert_SeqList(L, 3, 520);
Delete_SeqList(L, 4);
Find_SeqList(L, 520);
Find_SeqList(L, 369);
return 0;
}
上一篇: 顺序表的基本操作