数据结构与算法课程笔记(二)

您所在的位置:网站首页 数据结构顺序表的类型定义 数据结构与算法课程笔记(二)

数据结构与算法课程笔记(二)

2024-07-09 14:49| 来源: 网络整理| 查看: 265

实验二 线性表的顺序存储结构实现 一、实验目的二、实验内容

一、实验目的 熟悉VC++工程项目的文件组织方式;线性表中数据元素间的关系及其顺序存储结构方式表示方法;顺序表的操作方法与接口函数的设计方法。 二、实验内容

1. 利用本次实验提供的文件(listinarray.h、listinarray.cpp、content.cpp),创建并观察项目,回答下面问题。

文件说明: 【listinarray.h】顺序表的类型声明和操作接口声明 【listinarray.cpp】顺序表的操作实现代码 【content.cpp】顺序表应用程序(main函数)

(1) 程序如何定义顺序表的抽象数据类型? 答:程序使用数组定义顺序表的抽象数据类型的集合和关系,数组元素的插入、删除、查询等操作作为运算。

(2) 找出程序中定义顺序表抽象数据类型中的数据结构的代码?

typedef struct { ElemType data[MaxSize]; int length; } SqList;

(3) 找出程序中定义顺序表抽象数据类型中的操作接口的代码?

//初始化空线性表 void InitList(SqList &L); //判断线性表是否为空 bool ListEmpty(SqList L); //求出线性表长度 int ListLength(SqList L); //向线性表指定位置插入一个新元素 bool ListInsert(SqList &L, int pos, ElemType item); //从线性表中删除第一个与指定值匹配的元素 bool ListDelete(SqList &L, int pos, ElemType &item); //获取顺序表中指定位置上的数据元素 bool GetElem(SqList L, int pos, ElemType &item); //从线性表中查找元素,返回第一个与指定值匹配元素位置 int Find(SqList L, ElemType item); //遍历输出线性表 void TraverseList(SqList L); //合并线性表 void MergeList(SqList &L1, SqList L2); //降序合并线性表 void MergeList_Sq(SqList La, SqList Lb, SqList &Lc);

(4) 在头文件中找出顺序表数据元素类型声明的代码,并指出当前程序中的顺序表的数据元素是什么类型的数据?假设在顺序表中保存的数据元素要更改为字符时该如何修改代码? 答:typedef int ElemType; //声明元素类型 顺序表中的数据元素是整型的数据,若要更改为字符类型时,代码可修改为:typedef char ElemType;

(5) 程序中是如何表示顺序表中相邻数据元素的约束关系,即如何确定顺序表中的数据元素的相邻关系? 答:数组的每个元素在计算机的存储空间是依次连续的。

(6) 修改主函数main( )的代码,并按下图输出数据: 在这里插入图片描述 "listinarray.h"文件中修改线性表元素类型:

typedef int ElemType;

"content.cpp"文件中修改以下代码:

#include "listinarray.h" int main() { SqList my_List2; //定义线性表SqList类型的变量 ElemType Array[] ={1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,5,4,3,2,1};![在这里插入图片描述](https://img-blog.csdnimg.cn/20201101203043200.png#pic_center) for (int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3