顺序表的建立、插入、删除、查找
程序代码:
#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可能包含具体的编程...
(1)完成顺序表的结构定义,建立含有10个元素的顺序表,并把建成的顺序表顺序输出。 (2)在指定位置插入一个元素。例如,设当前顺序表的顺序为:“2 3 8 7 6 2 8 9 4 2” ,则按提示输入要插元素和位置“1,3”,...
本实验通过编写顺序表的基本操作函数,使学生掌握了顺序表的定义、创建、查找、插入、删除等功能。这些基本操作对于理解和实现其他更复杂的数据结构(如链表)具有重要的意义。通过本实验的学习,学生不仅能够掌握...
编写完整的程序实现顺序的建立、查找、插入、删除等基本操作(C语言实现)
C++编写顺序表生成插入删除查找数据和排序
根据给定文件的信息,本文将详细介绍线性表中的两种主要实现方式:顺序表与链表,并深入探讨这两种数据结构的基本算法——插入、删除、建立、查找。这些操作是线性表中最基本也是最重要的功能,对于理解和掌握数据...
(2)从标准输入(键盘)逐个数据输入a,b,c,d,e元素 ,建立顺序表 (3)输出顺序表L (4)输出顺序表L的长度 (5)判断顺序表L是否为空 (6)输出顺序表L的第3个元素 (7)输出元素a的位置 (8)在第4个元素...
在本主题中,我们将深入探讨顺序表的建立、初始化、插入、删除和查找等基本操作。 首先,顺序表是由一组具有相同类型元素的数组构成,数组中的元素按照线性顺序存储。这种数据结构的特性使得直接访问任意位置的元素...
1. 数组操作:顺序表可以用来实现数组的基本操作,如插入、删除、查找等。 2. 数据处理:顺序表可以用来处理数据,例如数据排序、搜索等。 3. 算法实现:顺序表可以用来实现各种算法,例如排序算法、搜索算法等。 ...
根据给定的信息,我们可以梳理出关于“顺序表的操作”这一主题的相关知识点,主要涉及顺序表的基本概念、初始化、创建(头部插入与尾部插入)、定位元素、获取指定位置的元素、计算长度、删除元素以及插入元素等核心...
cout 请输入需要建立的第一个顺序表 myListA 的长度: "; cin >> LenA; cout ; myListA.CreateList(LenA); myListA.SLPrint(); cout 请输入需要建立的第二个顺序表 myListB 的长度: "; cin >> LenB; cout ; ...
顺序表的特点是它的元素按照线性的顺序存储在一块连续的内存区域中,因此访问任何位置的元素的时间复杂度为O(1),但插入和删除操作可能涉及到大量的元素移动,效率相对较低。 在给定的代码中,定义了一个名为`...
顺序表的基本操作C语言 顺序表是一种基本的数据结构,在计算机科学...顺序表的基本操作包括初始化、插入、删除、修改、合并、定位和打印等。这些操作都是数据结构和算法的基础,广泛应用于计算机科学和信息技术领域。
在`main()`函数中,用户可以输入表的长度和初始值来创建一个顺序表,然后选择进行插入、删除、查找、获取特定位置元素或打印整个表的操作。根据用户输入的序号,程序调用相应的操作函数,并显示结果。 总的来说,这...
线性表的插入,删除,查找,具有一定的意义哦/为兄
1.建立一个顺序表,随机产生10个100以内的整数,并按要求完成:(1)编写显示函数,在屏幕上显示顺序表中的10个整数; (2)编写查找函数,从键盘输入任-一-整数在顺序表中查找,若找到,返回该元素在顺序表中的位置,...