您的位置:首页 > 其它

顺序存储结构的基本操作实现(以类的方式实现)----插入、删除、查询

2017-11-23 15:06 561 查看
之前在博客里也写过顺序存储结构的基本操作,这里主要用类来实现:

代码如下:

1.arraylist.h  头文件

#pragma once
#include <iostream>

class arrayList
{
private:
int len, size;
int* data;

public:
arrayList (int input_size) //构造函数
{
size = input_size;
len = 0;
data = new int[size]; // 创建该容量的数组
}
~arrayList()
{
delete []data;
}

bool insert (int pos, int val, arrayList *array); //插入
bool deletea (int val, arrayList *array);//删除
int search (int val);// 查找
void print (arrayList *array); //打印
//void initialize(arrayList *array);//初始化
};

2.arraylist.cpp
#include "arrayList.h";
#include <iostream>

using namespace std;

bool arrayList::insert (int pos, int val, arrayList *array) // pos 从1 算起
{
// 判断插入位置是否在length之后,或者容量已满, 或者pos小于1
if(pos > size || pos<1 )
{
cout << "插入的位置不正确" << endl;
return false;
}
else
{
for(int num = len+1; num >= pos-1; num--)
data[num+1] = data[num];
data[pos-1] = val;
len ++;
cout << "插入成功" << endl;
return true;
}
}

void arrayList::print (arrayList *array)
{
for (int num = 0; num < len; num++)
cout << data[num] << endl;
}

/*void arrayList::initialize(arrayList *array)
{
cout << "请输入初始化元素,其数目小于等于" << size << endl;
int val ;
int num = 0;
while(num<size )
{
cin >> val ;
data[num] = val;
num ++;
}
if(num == size)
cout << "输入个数超出容量" << endl;

}*/

bool arrayList::deletea (int val, arrayList *array)//当第一次出现该值时,删除它
{
int loc = search(val);
if(loc == 0)
cout <<"删除的值不存在" << endl;
else
{
for(int num = loc; num<len ; num++)
data[num] = data[num+1];
cout << "删除成功" << endl;
len--;
}

return 0;
}

int arrayList::search (int val) //寻找值,返回该值的位置
{
int num = 0;
while(num < len )
{
if(data[num] == val)
{
cout << "找到该值,位置为" << num+1 << endl ;
return num ;
}
else
num++;
}
if(num == len)
cout <<"没有找到该值" << endl;
return 0;
}

测试文件:
#include<iostream>
#include "arrayList.h"

using namespace std;

int main ()
{
arrayList arr(5); // 使用类中的构造函数
arr.insert(1, 1,&arr);
arr.insert(2, 2,&arr);
arr.insert(3, 3,&arr);
arr.insert(4, 4,&arr); //正常插入

//arr.insert(3, 7,&arr);
//arr.print(&arr);

//arr.search (8);

arr.deletea(3, &arr);
arr.print(&arr);

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐