顺序表的实现
来源:互联网 发布:盗图投诉淘宝复审 编辑:程序博客网 时间:2024/06/05 11:29
1.实验的目的
(1)掌握线性表的顺序存储结构;
(2)验证顺序表及其基本操作的实现;
(3)理解算法与程序的关系,能够将顺序表算法转换为对应的程序;
2.实验的内容
(1)建立含有若干个元素的顺序表;
(2)对已建立的顺序表实现插入、删除、查找等基本操作。
3.实验心得
实验就是将课本上的零碎知识连接运用起来,这次实验因为太久没写代码了,连头文件都忘了怎么写了,全程翻书。所以这次代码写的很慢,不过收获也很大,既学会了如何完成顺序表的实现,又复习了c++。
代码如下:
#include<iostream>
using namespace std;
const int MaxSize=10;
class Seqlist{
public:
Seqlist(int a[],int n);//建立一个顺序表
~Seqlist(){};//析构函数
void Insert(int i,int x);//插入
void Delete(int i);//删除第i个位置的元素
int Locate(int x);//X位于
void Printlist();//全显
private:
int data[MaxSize];//建立一个数据数组
int length;//数组长度
};
Seqlist::Seqlist(int a[],int n){
for( int i=0;i<n;i++)
data[i]=a[i];
length=n;}
void Seqlist::Insert (int i,int x){
if(i<1||i>length)
cout<<" 位置非法"<<endl;
for(int j=length;j>i-1;j--)
data[j+1]=data[j];
data[i]=x;
length+=1;
}
void Seqlist::Delete(int i){
if(i<1||i>length)
cout<<" 位置非法"<<endl;
int x=data[i-1];
for(int j=i-1;j<length-1;j++)
data[j]=data[j+1];
length--;
cout<<"位置"<<i<<"上的数据"<<x<<"已删除" <<endl;
}
int Seqlist::Locate(int x){
for(int i=0;i<length;i++)
if(data[i]==x)
return i+1;
return 0;
}
void Seqlist::Printlist(){
for(int i=0;i<length;i++)
cout<<data[i]<<"";
cout<<endl;
}
int main(){
int a[7]={1,2,3,4,5,6,7};
Seqlist L(a,7);
cout<< "执行插入操作前数据为:"<<endl;
L.Printlist();
L.Insert(3,8);
cout<<"执行插入后数据为:"<<endl;
L.Printlist();
cout<<"值为5的元素位置为:";
cout<<L.Locate(5)<<endl;
cout<<"执行删除第二个元素操作,删除前数据为:"<<endl;
L.Printlist();
L.Delete(2);
cout<<"删除后数据为:"<<endl;
L.Printlist();
return 0; }
运行结果如下:
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 顺序表的实现
- 为适配平板而生的Dialog(同样也支持手机)
- JSON对象和JSON字符串间的相互转换
- TCP/IP 链路层
- Appium三种等待方式
- Spring MVC + redis 消息的订阅发布
- 顺序表的实现
- Typescript代码实例解析
- 算法规律 rotate String
- 曾国藩的三十六字诀
- Mysql InnoDB B+Tree索引
- 【职坐标】SpringMVC和struts2的区别对比
- 冒泡排序法为什么最佳的时间复杂度是O(n)
- python自然语言处理学习笔记4——条件
- Android Api demo系列(26) (Graphics>Sweep)