数据结构01线性表的基本操作Word文件下载.docx

上传人:b****2 文档编号:15284952 上传时间:2022-10-29 格式:DOCX 页数:12 大小:258.33KB
下载 相关 举报
数据结构01线性表的基本操作Word文件下载.docx_第1页
第1页 / 共12页
数据结构01线性表的基本操作Word文件下载.docx_第2页
第2页 / 共12页
数据结构01线性表的基本操作Word文件下载.docx_第3页
第3页 / 共12页
数据结构01线性表的基本操作Word文件下载.docx_第4页
第4页 / 共12页
数据结构01线性表的基本操作Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构01线性表的基本操作Word文件下载.docx

《数据结构01线性表的基本操作Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构01线性表的基本操作Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构01线性表的基本操作Word文件下载.docx

基本操作:

InitList(List*L,intms)

操作前提:

L是一个未初始化的顺序表

操作结果:

将L初始化为一个空的顺序表,长度为ms

1nsertList(List*L,intitem,intrc)/*在表L的第rc位置上

顺序表L已存在

在表L的第rc位置上插入item元素

DeleteListl(List*L,intitem)

删除item元素的顺序表记录

DeleteList2(List*L,intrc)

删除位置为rc的顺序表记录

FindList(ListL,intitem)

查找顺序表中的item元素

OutputList(ListL)

输出顺序表元素

}

(2)本程序包含7个函数:

主函数main()

初始化线性表InitList(List*L,intms)

向顺序表指定位置插入元素1nsertList(List*L,intitem,intrc)/

删除指定元素值的顺序表记录DeleteListl(List*L,intitem)

删除指定位置的顺序表记录DeleteList2(List*L,intrc)

查找顺序表中的元素FindList(ListL,intitem)

输出顺序表元素OutputList(ListL)

各函数间调用关系:

主函数调用其他所以函数。

(3)主函数的伪玛

main()

{声明其他函数;

定义变量和顺序表L;

初始化L;

向L插入10个元素;

显示L;

输入要查找元素的值;

调用FindList(ListL,intitem);

输出结果;

输入要删除元素的值;

调用DeleteListl(List*L,intitem);

输出结果;

输入要删除元素的位置;

调用DeleteList2(List*L,intrc);

 

4.详细设计

类型定义

typedefstructLinearList

{

int*list;

intsize;

intMAXSIZE;

}List;

基本操作的伪码算法

初始化

voidInitList(List*L,intms)

*L=请结点

如果申请失败则退出;

L->

size=0;

MAXSIZE=ms;

向顺序表指定位置插入元素

intInsertList(List*L,intitem,intrc)

如果rc小于0或大于顺序表元素的个数则返回-1;

如果L的元素个数大于L的最大数则返回-1;

list[rc]=item;

for(i=L->

size;

i>

rc;

--i)

{从第i位开始,前面一个元素向后移动一位;

L的元素个数增加一个;

删除指定元素值的顺序表记录

intDeleteList1(List*L,intitem)

{for(i=0;

i<

L->

i++)

{如果item==L->

list[i]则退出循环;

如果i<

size

{for(j=i;

j<

size-1;

j++)

{从j开始L->

list[j]=L->

list[j+1];

size减1;

返回i的值;

Else返回-1;

删除指定位置的顺序表记录

intDeleteList2(List*L,intrc)

{如果rc<

0||rc>

=L->

size则返回-1;

for(j=rc-1;

{L->

查找顺序表中的元素

intFindList(ListL,intitem)

{定义整形变量i=0;

当i小于等于L.size或item不等于L.list[i])i自增1;

如果i小于等于L.size返回i;

否则返回0;

voidOutputList(ListL)

{定义整形变量i;

for(i=0;

L.size;

{输出L.list[i];

输出换行符;

5.调试分析

在主函数中定义list型指针变量L,并调用函数InitList(List*L,intms);

调试是会出现error:

expressioncannotbeevaluated。

重新定义list型变量L,并将&

L作为参数带入函数中便可以解决。

6.使用说明

程序执行过程如下:

提示用户输入要查找的值;

用户按要求输入一个正整数;

程序输出查找值的位置;

程序输出顺序表元素;

提示用户输入要删除的值;

程序输出删除元素的位置;

提示用户输入要删除元素的位置;

用户按要求输入;

按任意键退出程序;

7.测试结果

1.向顺序表指定位置插入元素

2.在顺序表中查找指定的元素

3.在顺序表中删除指定值的元素

4.在顺序表中删除指定位置的元素

8.参考文献

  

9.附录

#include<

stdio.h>

stdlib.h>

malloc.h>

typedefstructLinearList

intMaxSize;

}LIST;

voidInitList(LIST*L,intms)

if((L->

list=(int*)malloc(ms*sizeof(int)))==NULL)

{

printf("

内存申请错误!

\n"

);

exit

(1);

}

MaxSize=ms;

intInsertList(LIST*L,intitem,intrc)

{

inti;

if(L->

size>

MaxSize)

return-1;

if(rc<

0)

rc=0;

if(rc>

size)

rc=L->

for(i=L->

size-1;

i>

=rc;

i--)

list[i+1]=L->

list[i];

list[rc]=item;

size++;

return0;

intDeleteList1(LIST*L,intitem)

inti,n;

for(i=0;

i<

i++)

if(item==L->

list[i])

break;

if(i<

size){

for(n=i;

n<

n++)

L->

list[n]=L->

list[n+1];

L->

size--;

returni;

return-1;

intDeleteList2(LIST*L,intrc)

inti,n;

if(rc<

size)

break;

for(n=i;

n<

n++)

list[n]=L->

size--;

returni;

return-1;

intFindList(LIST*L,intitem)

inti;

if(L->

list[i]==item)

returni;

voidOutputList(LIST*L)

i<

size;

i++)

%d"

L->

list[i]);

printf("

intmain()

LISTLL;

inti,r;

InitList(&

LL,100);

while

(1)

请输入元素值,输入0结束插入操作:

"

fflush(stdin);

scanf("

%d"

&

i);

if(i==0)

break;

请输入插入位置:

r);

InsertList(&

LL,i,r);

线性表为:

"

OutputList(&

LL);

请输入查找元素值,输入0结束查找操作:

if(i==0)

r=FindList(&

LL,i);

if(r<

0)

printf("

没找到\n"

else

有符合条件的元素,位置为:

%d\n"

r+1);

请输入删除元素值,输入0结束查找操作:

r=DeleteList1(&

else{

%d\n线性表为:

OutputList(&

LL);

请输入删除元素位

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

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1