数学与计算科学学院实验报告实验项目名称线性表的顺序表示与实现所属课程名称数据结构实验类型验证型实验日期班级学号姓名成绩实验概述:【实验目的】“物理位置相邻”来表示线性表中数据元素之间的逻辑关系。,没有直接前驱,且仅有一个直接后继;有且仅有一个终结结点,没有直接后继,且仅有一个直接前驱。。2掌握线性表的基本操作在顺序存储结构上的实现。【实验原理】,其存储位置可以用一简单直观的公式表示2顺序表的类C语言表示:#defineLIST_INIT_SIZE9//线性表存储空间的初始分配量#defineLISTINCREMENT2//线性表存储空间的分配增量typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;【实验环境】VC++、【实验容】【实验方案】编写主函数,调用顺序表的初始化建空表,插入和删除算法,调试运行得出结果【实验过程】(实验步骤、记录、数据、分析)先将线性表的动态分配顺序存储结构,算法与主函数编入VC++{ElemType*elem;intlength;intlistsize;}SqList;StatusInitList_Sq(SqList&L){=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!)exit(OVERFLOW);=0;=LIST_INIT_SIZE;returnOK;}StatusListInsert_Sq(SqList&L,inti,ElemTypee){if(i<1||i>+1)returnERROR;if(>=){newbase=(ElemType*)realloc(,(+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);=newbase;+=LISTINCREMENT;}q=&([i-1]);for(p=&([-1]);p>=q;--p){*(p+1)=*p;*q=e;++;returnOK;}StatusListDelect_Sq(SqList&L,inti,ElemType&e){if((i<1)||(i>))returnERROR;p=&([i-1]);e=*p;q=+-1;for(++p;p<=q;++p)*(p-1)=*p;--;returnOK;}voidmain(){SqListL;inti;InitList_Sq(L); for(i=0;i<LIST_INIT_SIZE;i++){scanf("%d",&[i]);++;}for(i=0;i<;i++)printf("%d",[i]);printf("\n");ElemTypee;scanf("%d%d",&i,&e);ListInsert_Sq(L,i,e); for(i=0;i<;i++)printf("%d",[i]);printf("\n");scanf("%d",&i);ListDelect_Sq(L,i,e);for(i=0;i<;i++)printf("%d",[i]);printf("\n");}:原因:由于许多变量未定义,以及没有头文件与宏定义所以错误许多,:#include""#include""#RUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineLIST_INIT_SIZE9#defineLISTINCREMENT2typedefintElemType;typedefintStatus;:原因:是在每个算法中有许多变量未定义,:
数据结构线性表的顺序表示和实现的实习报告 来自淘豆网m.daumloan.com转载请标明出处.