(数据结构)实验一 线性表的顺序存储结构

您所在的位置:网站首页 三元线性表的顺序存储表示为 (数据结构)实验一 线性表的顺序存储结构

(数据结构)实验一 线性表的顺序存储结构

2024-07-17 06:22| 来源: 网络整理| 查看: 265

一、实验目的

1.了解线性表的逻辑结构特性及其基本操作。 2.熟练掌握线性表的顺序存储结构的定义及其基本操作的C 语言实现。 3.掌握顺序表的应用,逐步培养解决实际问题的能力。 4.熟练掌握C语言中指针、结构体与数组的知识,为以后的各个实验做准备。

二、实验内容

1.(必做题) 设计并验证以下算法:设顺序表L中的数据元素为整数且非递增有序,删除其值相同的多余元素,即顺序表L中相同的元素只保留一个,并逆置删除后的顺序表L。 (1) 根据键盘输入数据建立顺序表L。 (2) 输出顺序表L、删除值相同多余元素后的顺序表L、逆置的顺序表L。 (3) 假设顺序表L的长度为n,要求以O(m)的时间复杂度完成对值相同多余元素的删除。 2.设计并验证以下算法: 设顺序表A和B中的数据元素为整数且单调递增 有序,将这两张表合并成顺序表C。 (1) 顺序表C单调递减有字。 (2) 根据键盘输入数据建立顺序表A和B。 (3) 输出顺序表A、B和C。

三、代码实现与结果

第一题: 代码:

#include #include #define LIST_INIT_SIZE 10 //顺序表存储空间的初始分配量 #define LISTINCREMENT 2 //顺序表存储空间的分配增量 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 //函数结果状态代码 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int status; typedef int ElemType; typedef struct { ElemType *elem; int length; int listsize; }SqList; //定义线性表的存储结构 status InitList_Sq(SqList &L); void CreateSqList(SqList &L); void RefineSqList(SqList L1,SqList &L2); void Inverse(SqList &L); void PrintSq_List(SqList L); int main(int argc, char* argv[]) { SqList L1,L2; if(InitList_Sq(L1)==OK && InitList_Sq(L2)==OK) { CreateSqList(L1); printf("SqList L1:\n"); PrintSq_List( L1); RefineSqList(L1,L2); printf("pure SqList L2:\n"); PrintSq_List(L2); Inverse(L2); printf("inverse pure SqList L2:\n"); PrintSq_List(L2); } return 0; } status InitList_Sq(SqList &L) //构造一个新的顺序表L { L.elem = (ElemType*)malloc(sizeof(ElemType)*LIST_INIT_SIZE); if(!L.elem) return OVERFLOW; L.length=0; L.listsize = LIST_INIT_SIZE; return OK; } void CreateSqList(SqList &L) //创建一个线性表L { int i; for(i=0;i


【本文地址】


今日新闻


推荐新闻


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