顺序表的实现Word文件下载.docx

上传人:b****2 文档编号:4250220 上传时间:2023-05-03 格式:DOCX 页数:15 大小:127.69KB
下载 相关 举报
顺序表的实现Word文件下载.docx_第1页
第1页 / 共15页
顺序表的实现Word文件下载.docx_第2页
第2页 / 共15页
顺序表的实现Word文件下载.docx_第3页
第3页 / 共15页
顺序表的实现Word文件下载.docx_第4页
第4页 / 共15页
顺序表的实现Word文件下载.docx_第5页
第5页 / 共15页
顺序表的实现Word文件下载.docx_第6页
第6页 / 共15页
顺序表的实现Word文件下载.docx_第7页
第7页 / 共15页
顺序表的实现Word文件下载.docx_第8页
第8页 / 共15页
顺序表的实现Word文件下载.docx_第9页
第9页 / 共15页
顺序表的实现Word文件下载.docx_第10页
第10页 / 共15页
顺序表的实现Word文件下载.docx_第11页
第11页 / 共15页
顺序表的实现Word文件下载.docx_第12页
第12页 / 共15页
顺序表的实现Word文件下载.docx_第13页
第13页 / 共15页
顺序表的实现Word文件下载.docx_第14页
第14页 / 共15页
顺序表的实现Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

顺序表的实现Word文件下载.docx

《顺序表的实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《顺序表的实现Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

顺序表的实现Word文件下载.docx

voidInsert(inti);

voidEmpty()

boolIsempty()

voidinput()

voidoutput()

voidIncreaseSize()

intRemove1(T&

x)

intRemove2(inti)

2、主程序流程及模块调用关系

SeqList

-dataT*

-max_sizeint

-lenthint

+Length()int

+Search()void

+Insert(inti)void

+Empty()void

+Isempty()bool

+input()void

+output()void

+IncreaseSize()void

+Remove1(T&

x)int

+Remove2(inti)int

四、详细设计(要求主要变量和语句加注释)

#include<

iostream>

//SeqList.h

usingnamespacestd;

template<

classT>

classSeqList

{

protected:

T*data;

intmax_size;

intlenth;

public:

SeqList(intn);

~SeqList(){delete[]data;

}

intLength()const{returnlenth;

voidInsert(inti);

voidEmpty(){inti;

for(i=0;

i<

=lenth-1;

i++)data[i]=NULL;

lenth=0;

cout<

<

"

顺序表已经清空"

endl;

};

boolIsempty(){if(Length())returnfalse;

elsereturntrue;

voidinput();

voidoutput();

voidIncreaseSize();

//扩容函数

x);

//按位置删除

intRemove2(inti);

//按元素删除

template<

SeqList<

T>

:

SeqList(inti)

{

max_size=i;

lenth=0;

data=newT[max_size];

voidSeqList<

IncreaseSize()

T*newarray=newT[max_size+10];

intn=lenth;

T*srcptr=data;

T*destptr=newarray;

while(n--)*destptr++=*srcptr++;

delete[]data;

data=newarray;

max_size+=10;

Search()

{inta=0,b,c;

charx;

(1)请输入要查找的元素"

(2)请输入要查找的位置"

cin>

>

b;

switch(b)

case1:

cin>

x;

for(c=0;

c<

c++)

{if(data[c]==x){a++;

第"

c+1<

个元素是"

x<

}}

if(a!

=0)cout<

共找到"

a<

个元素"

elsecout<

不存在该元素!

break;

case2:

a;

if(a>

=1||a<

=lenth)cout<

该元素是:

data[a-1]<

输入的位置不正确!

/*template<

intSeqList<

Locate(inti)const

{if(i>

=1&

&

=lenth)returni;

elsereturn0;

*/

Insert(inti)

{charx;

if(lenth==max_size)IncreaseSize();

loop:

if(i<

0||i>

lenth)

cout<

输入的范围错误!

必须在1~"

lenth<

之间。

请重新输入位置:

i;

gotoloop;

}

请输入要插入的元素:

for(intj=lenth;

j>

=i;

j--)

{data[j]=data[j-1];

data[i-1]=x;

lenth++;

input()

while

(1)

{cout<

请输入顺序表中的元素个数:

;

lenth;

if(lenth<

=max_size){cout<

请输入"

表元素个数输入有误,范围不能超过"

max_size<

!

for(inti=0;

i++)

{cout<

请输入第"

i+1<

data[i];

output()

{for(inti=0;

个元素:

data[i]<

}};

Remove1(T&

{inta=0,i;

if(data[i]==x)

{a++;

for(intj=i;

j<

lenth+1;

j++){data[j]=data[j+1];

lenth-=1;

已经删除第"

if(a!

=0)return1;

if(a==0)cout<

删除值有错误,请重新输入"

return0;

Remove2(inti)

{

charx;

x=data[i-1];

for(intj=i;

lenth-=1;

//主函数

stdlib.h>

#include"

SeqList.h"

intmain()

inta,i,c,d;

char>

newlist(10);

while(a)

========================================="

顺序表"

(1)输入顺序表"

(2)显示顺序表"

(3)进行插入操作"

(4)进行删除操作"

(5)查找顺序表中的元素"

(6)清空顺序表"

(0)退出程序"

switch(a)

{case1:

newlist.input();

case2:

if(newlist.Isempty())cout<

顺序表为空,返回主菜单输入"

elsenewlist.output();

case3:

请输入要插入的位置:

newlist.Insert(i);

插入成功"

case4:

(1)请输入要删除的元素"

(2)请输入要删除的位置"

cin>

c;

if(c=1)

{cout<

cin>

while(newlist.Remove1(x)!

=1)

{cin>

}

elsecout<

d;

newlist.Remove2(d);

break;

case5:

newlist.Search();

case6:

newlist.Empty();

case0:

default:

没有该选项"

return0;

五、调试分析

1、出现了几次顺序表的容量满,无法处理,于是使用了扩容函数。

2、解决了删除和查找操作中位置和地址的兼容问题。

3、解决了顺序表元素的类型兼容问题

六、测试结果

列出几组输入和输出结果,输入集应多于需求分析的数据。

纯数字输入:

纯字母输入:

字母数字混合输入:

插入操作:

查找操作:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2