顺序表的建立、插入、删除、查找
程序代码:
#include "iostream.h"
#define MaxSize 100
typedef int DataType;
class SeqList
{
DataType list[MaxSize];
int length;
public:
SeqList(){length=0;}
void SLCreat(int n);
void SLInsert(int i,DataType x);
void SLDelete(int i);
int GetLength(){return length;}
int SLFind(DataType x);
DataType SLGet(int i);
int SLIsEmpty();
void SLPrint();
};
//创建顺序表
void SeqList::SLCreat(int n)
{
DataType x;
cout << "请输入数据元素:";
for (int i=0;i<n;i++){
cin >>x;
list[i]=x;
length++;
}
}
//在顺序表L中的i位置插入数据元素x
void SeqList::SLInsert(int i,DataType x)
{
int k;
if (length>=MaxSize)
cout<< "表已满,无法插入!"<<endl;
else if (i<0||i>length)
cout <<"参数i不合理!" <<endl;
else
{
for (k=length;k>i;k--)
{list[k]=list[k-1];}
list[i]=x;
length++;
}
}
//删除第i个位置的数据元素
void SeqList::SLDelete(int i)
{
int k;
if (!SLIsEmpty())
cout << "表已空,无法删除!"<<endl;
else if (i<0||i>length)
cout << "参数i不合理!"<<endl;
else
{
for (k=i-1;k<length;k++)
list[k]=list[k+1];
length--;
}
}
//查找数据元素x在表中的位置
int SeqList::SLFind(DataType x)
{
int i=0;
while (i<length&&list[i]!=x) i++;
if (i>=length) return -1;
else return i+1;
}
//获取第i个位置的元素的数值
DataType SeqList::SLGet(int i)
{
if (i<0||i>length)
{
cout<<"参数i不合理!"<<endl;
return 0;
}
else
return list[i-1];
}
//判断顺序表是否为空
int SeqList::SLIsEmpty()
{
if (length<=0) return 0;
else return 1;
}
//奖顺序表显示在屏幕上
void SeqList::SLPrint()
{
if (!SLIsEmpty())
cout<<"空表!"<<endl;
else
for (int i=0;i<length;i++)
cout<<list[i]<<" ";
cout <<endl;
}
void main()
{
SeqList myList;
int i,n,flag=1,select;
DataType x;
cout<<"1、建立顺序表\n";
cout<<"2、求第i个位置上的数值\n";
cout<<"3、求x数值的位置:\n";
cout<<"4、在第i个位置插入数值元素x\n";
cout<<"5、删除第i个位置上的数值\n";
cout<<"6、退出\n";
cout<<endl;
while (flag)
{
cout<<"请选择操作: ";
cin>>select;
switch(select)
{
case 1:
cout<<"请输入顺序表的长度: ";
cin>>n;
myList.SLCreat(n);
cout<<"你所输入的顺序表为: ";
myList.SLPrint();
break;
case 2:
cout<<"请输入i的位置: ";
cin>>i;
cout<<"第"<<i<<"个位置上的数值为: "<<myList.SLGet(i)<<endl;
break;
case 3:
cout<<"请输入x的值: ";
cin>>x;
i=myList.SLFind(x);
if(i!=-1) cout<<"x的位置为: "<<i<<endl;
else cout<<"没有找到!";
break;
case 4:
cout<<"请输入要插入的元素的位置i和数值x: ";
cin>>i>>x;
myList.SLInsert(i,x);
cout<<"插入后的顺序表为: ";
myList.SLPrint();
break;
case 5:
cout<<"请输入要删除的元素的位置: ";
cin>>i;
myList.SLDelete(i);
cout<<"删除后的顺序表为: ";
myList.SLPrint();
break;
case 6:
flag=0;
break;
}
}
}
运行结果:
- 大小: 13.1 KB
分享到:
相关推荐
包括顺序表建立,的插入,删除操作,动态分配空间,
自己编的顺序表,各位高手指导一下,里面有顺序表的建立 插入 删除 查找 (分位置 和分值)
C语言实现顺序的建立、查找、插入、删除等基本操作
(1)完成顺序表的结构定义,建立含有10个元素的顺序表,并把建成的顺序表顺序输出。 (2)在指定位置插入一个元素。例如,设当前顺序表的顺序为:“2 3 8 7 6 2 8 9 4 2” ,则按提示输入要插元素和位置“1,3”,...
1、建立含有若干个元素的顺序表; 2、对已建立的顺序表实现插入、删除、查找、逆置等操作。
编写完整的程序实现顺序的建立、查找、插入、删除等基本操作(C语言实现)
C++编写顺序表生成插入删除查找数据和排序
(2)从标准输入(键盘)逐个数据输入a,b,c,d,e元素 ,建立顺序表 (3)输出顺序表L (4)输出顺序表L的长度 (5)判断顺序表L是否为空 (6)输出顺序表L的第3个元素 (7)输出元素a的位置 (8)在第4个元素...
顺序表、链表的基本算法插入、删除、建立、查找
顺序表的初始化、建立、插入、删除、查找。。相关操作
线性表的插入,删除,查找,具有一定的意义哦/为兄
创建顺序表 2. 输入数据 3. 插入数据 4. 删除数据 5. 求顺序表并集 6. 删除重复元素 7. 冒泡排序 8. 比较顺序表大小 9. 前N个元素和后M个元素互换 10. 删除重复元素(2) 0....
1.编写程序实现顺序表的下列基本操作: (1)初始化顺序表La。 (2)将La置为空表。 (3)销毁La。 (4)在La中插入一个新的元素。 (5)删除La中的某一元素。 (6)在La中查找某元素,若找到,则返回它在La中第一次出现...
1.建立一个顺序表,随机产生10个100以内的整数,并按要求完成:(1)编写显示函数,在屏幕上显示顺序表中的10个整数; (2)编写查找函数,从键盘输入任-一-整数在顺序表中查找,若找到,返回该元素在顺序表中的位置,...
用模板方式实现顺序表的合并 ... cout请输入需要建立的第二个顺序表 myListB 的长度: "; cin>>LenB; cout; myListB.CreateList(LenB); myListB.SLPrint(); ListUnion(myListA,myListB); return 0; }
(2) 设计一个带选择菜单的主函数,菜单中具备任意选择删除、插入、查找数据元素的功能。 (3) 当选择删除功能时,从键盘读入欲删除的元素位置或元素值,按指定方式删除;当选择插入功能时,从键盘读入新元素值和...
在顺序表上实现插入、删除和查找操作(验证性内容)。 3.删除有序顺序表中的重复元素(设计性内容)。 4.完成一个简单学生成绩管理系统的设计(应用性设计内容)。 四、实验的软硬件环境要求 硬件环境要求: PC机...
实现数据结构中顺序表的建立插入删除查找功能。
C与语言实现链表的创建、插入(头插法、尾插法)、遍历、查找、删除操作
编制一个程序,要求建立一个按数据元素值递增有序的顺序表,并将x插入到顺序表的适当位置以保持该表的有序性。 运行环境vc++