第一范文网 - 专业文章范例文档资料分享平台

顺序表的建立及基本操作

来源:用户分享 时间:2020-06-18 本文由嗜桖仦媄囡 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验二顺序表的建立及基本操作方法实现

实验预备知识:

1.熟练运用指针进行程序设计,掌握结构体指针。 2.掌握使用结构体指针访问结构体变量。 3.掌握指针作为函数的参数使用。

一、实验目的

1. 理解和掌握线性表的类型定义方法。

2. 掌握顺序表中的基本运算,包括顺序表的创建、元素的添加、删除,判空及判满等基本

操作。

二、实验要求(本次实验要求上交)

【题目1】----验证型

以下顺序表的基本操作已经给出,请进行验证。源程序见附录部分 测试数据: 1020

请将源程序附录于此: #include #include #define LIST_INIT_SIZE 100 #define Icreament 20 typedefintElemType; //用户自定义数据元素类型 typedefstruct { ElemType *elem; //顺序表的基地址 int length; //顺序表的当前长度 SqList* InitList() //创建空的顺序表 intlistsize; //预设空间容量 }SqList; //线性表的顺序存储结构 { SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L if(!L) { printf(\空间划分失败,程序退出\\n\ return NULL; } L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) { printf(\空间划分失败,程序退出\\n\ return NULL; } L->length=0; L->listsize=LIST_INIT_SIZE; return L; } intCreateList(SqList* L) //创建顺序表(非空) { int number; //顺序表中元素的个数 inti; //循环变量 printf(\请输入插入元素的个数:\scanf(\ if(number > LIST_INIT_SIZE) //一定要判断输入的个数是否大于顺序表的最大长度 { printf(\输入个数大于顺序表的长度\\n\ return 0; } for(i=0;ilength=number; //当前顺序表的长度 return 1; } void print(SqList* L) //输出当前顺序表 { inti; printf(\输出:\\n\ for(i=0;ilength;i++) { printf(\第%d个数:%-3d\\n\+ i)); //L->elem+i:和输入是一个道理 } printf(\顺序表长度为:%d\\n\printf(\} int main() { SqList* L = InitList(); //申请一个指向顺序表的指针,并对其初始化 if(!L) //判断申请是否成功 { printf(\初始化线性表失败\\n\ return 1; } if(!CreateList(L)) //判断创建顺序表是否成功 { printf(\创建顺序表失败\\n\ return 1; } print(L); //打印顺序表 free(L->elem); //释放申请的顺序表元素的内存 free(L); //释放申请的顺序表内存 return 0; } 请将运行结果图附录于此 【题目2】

(1) 有一个表元素按值递增排列的顺序表,编写一个函数实现删除顺序表中多余的

值相同元素

(2) 有一个顺序表,编写一个在顺序表中查找最大和最小值元素的函数,并分析其

时间复杂度

算法分析: 问题1: 输入元素的个数 问题2: 排序的次数

请将源程序附录于此: #include #include #include typedefstructArrList { int *arr; int length; }List; List *Init(int n) { List *L=(List*)malloc(sizeof(List)); } L->arr=(int *)malloc(sizeof(int)*n); L->length=0; return L; //输入元素 void input(List *L,int n) { inti; int x; printf(\请输入%d个数\\n\ for(i=0;iarr); } //元素长度 intListLength(List *L) L->length=0; free(L); L=NULL; printf(\第%d一个元素是;%d\\n\ } while(!(scanf(\ { printf(\输入错误请重新输入!\\n\scanf(\scanf(\ } L->arr[i]=x; ++L->length; }

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新工程科技顺序表的建立及基本操作 全文阅读和word下载服务。

顺序表的建立及基本操作 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1083083.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top