实验二 线性表的顺序存储(3)

2018-10-21 10:30

int La[]={1,9,8,4,7,6,2,3}; int Lb[]={3,2,1};

SeqList myLista(La,8); SeqList myListb(Lb,3);

cout<<排序前数La组为: myLista.display();

cout<<排序前数Lb组为: myListb.display(); myLista.sort(); myListb.sort();

for(int i=1;i

粘贴测试数据及运行结果:

三、 心得体会:(含上机中所遇问题的解决办法,所使用到的编程技巧、创新点及编程

的心得)

#include #include

const int MaxSize=100;

template //定义模板类SeqList class SeqList {

public:

SeqList( ); //无参构造函数

SeqList(datatype a[ ], int n); //有参构造函数 ~SeqList(){}; //析构函数为空 int Length(); //求线性表的长度

datatype Get(int i); //按位查找,取线性表的第i个元素 int Locate(datatype item); //查找元素item

void Insert(int i, datatype item); //在第i个位置插入元素item datatype Delete(int i); //删除线性表的第i个元素 void display(); //遍历线性表,按序号依次输出各元素 int isEmpty();

int qianqu(int i,datatype item); int houji(int i,datatype item);

//void and(SeqList &a,SeqList &b); //void Insert(datatype item); //void sort(); private:

datatype data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 };

template

SeqList:: SeqList( ) {

length=0; }

template

SeqList:: SeqList(datatype a[], int n) {

if (n>MaxSize) throw 数组元素个数不合法 for (int i=0; i

template

void SeqList::Insert(int i, datatype item) {

int j;

if (length>=MaxSize) throw 溢出

if (i<1 || i>length+1) throw 不合法! for (j=length; j>=i; j--) data[j]=data[j-1]; data[i-1]=item; length++; }

template

datatype SeqList::Delete(int i) {

int item,j;

if (length==0) throw 表为空,无法删除元素! if (i<1 || i>length) throw 不合法! item=data[i-1];//获得要删除的元素值 for (j=i; j

data[j-1]=data[j]; //注意数组下标从0记 length--; return item; }

template

void SeqList::display() {

for(int i=0;i

template

int SeqList::Length() {

return length; }

template

int SeqList::Locate(datatype item) {

for (int i=0; i

//下标为i的元素等于item,返回其序号i+1 return 0; //查找失败 }

template

datatype SeqList::Get(int i) {

if (i<1 || i>length) throw 不合法! else return data[i-1]; }

template

int SeqList::isEmpty() {

if(length==0) return 1; return 0; }

template

int SeqList::qianqu(int i,datatype item) {

if(length<=1) cout<<不存在前驱 for(i=0;i

if(data[i-1]==item) return i-1; cout<<表中无此元素}

template

int SeqList::houji(int i,datatype item) {

if(length<=1) cout<<不存在后继 for(i=0;i

if(data[i-1]==item) return i+1; cout<<表中无此元素}

typedef int datatype; void main() {

int a[10]={1,2,3,4,5,6,7,8,9,10};

SeqList myList(a,10); myList.display();

cout<<表长为: cout<<第5个元素是: cout<

cout<<第一个元素前插入元素33后表为: myList.Insert(1,33); myList.display();

cout<<表长为: cout<

cout<<删除第一个元素后表为: myList.Delete(1); myList.display();

cout<<表长为: cout<

cout<<元素4的前驱位置为: cout<<元素4的后继位置为: cout<

cout<<得到第6个元素为: //for(int i=0;i<10;i++) //myList.Insert(i+1,i); }

template

void SeqList::and(SeqList &myLista,SeqList &myListb) {

int i,j;

//int m=myLista.Length(),n=myListb.Length();

int c[10];

for(i=1;i

if(myLista.Get(i)==myListb.Get(j)) {

cout<<重复的元素是: myListb.Delete(j); }

//else continue;

for(i=myLista.Length()+1,j=1;j

cout<

void main() {

int a[]={1,3,5,7,9}; int b[]={1,3,6,8,10};

SeqList myLista(a,5); SeqList myListb(b,5); cout<<数组为: myLista.display(); cout<

cout<<数组为: myListb.display(); cout<

myLista.and(myLista,myListb);

实验二 线性表的顺序存储(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新编MCS-51单片机应用设计目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: