好文档 - 专业文书写作范文服务资料分享网站

数据结构线性表的基本操作及应用实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

实验日期 2010.4.19 教师签字 成绩

实 验 报 告

【实验名称】 第二章线性表的基本操作及应用 【实验目的】

(1)熟练掌握线性表的基本操作的实现;

(2)以线性表的各种操作(建立、插入、删除等)的实现为重点;

(3)通过本次实验加深对C语言的使用(特别是函数的参数调用、指针类型 的应用和链表的建立等各种基本操作)。

【实验内容】

1. 顺序表的基本操作(顺序表的插入、访问、删除操作)

#include #include

#define OK 1 #define ERROR 0

#define OVERFLOW -1 typedef int ElemType; typedef int Status;

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10 typedef struct{ ElemType *elem; int length; int listsize; }SqList;

Status InitList_Sq(SqList *L){ int i,n;

L->elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType)); if (! L->elem) exit (OVERFLOW);

printf(\您希望您的顺序表有几个元素: \ scanf(\ printf(\

printf(\输入您的%d个元素,以构建顺序表: \\n\ for(i=1;i<=n;i++)

scanf(\ L->length = n;

L->listsize = LIST_INIT_SIZE; return OK; }//InitList_Sq

Status PrintList_Sq(SqList L){ int i;

printf(\顺序表中的元素为: \ for (i=1;i<=L.length;i++)

printf(\ \ printf(\ return OK; }//PrintList_Sq

int ListInsert_Sq(SqList* L,int i,ElemType x) //对顺序表进行插入操作 {int j;

if (L->length==L->listsize)

{printf(\顺序表已满\else {

if (i<1||i>L->length)

{printf(\位置不合法\ else {

for(j=L->length-1;j>=i-1;--j) L->elem[j+1]=L->elem[j]; L->elem[i-1]=x; L->length++; return 1; } } }

int ListDelete_Sq(SqList* L,int i) //对顺序表进行删除操作 {int j;

if (i<1||i>L->length)

{printf(\不存在第i个元素\else {

for (j=i-1;jlength;j++) {

L->elem[j]=L->elem[j+1]; } L->length--; return 1; } }

int LocateElem(SqList *L, int i) {

if(i<1||i>L->length)return ERROR; else return L->elem[i-1]; }

int scan() {

int choose;

printf(\选择要执行的基本操作:\\n1.插入元素;2.删除元素;3.访问元素.\\n\ printf(\输入其他值退出程序……\\n\ scanf(\ return(choose); }

void main(){

SqList L; ElemType e; int i;

int quit=0;

if (InitList_Sq(&L)==OVERFLOW) printf(\分配失败,退出程序!\ printf(\输出程序中的元素\\n\ PrintList_Sq(L); while(!quit) switch(scan()){

case 1:printf(\请输入你所需要插入的位置和你要插入的元素:\ printf(\请输入i和e的值:\ scanf(\

if (ListInsert_Sq(&L,i,e)==OK) PrintList_Sq(L);break; case 2:printf(\请输入你所需要删除元素的位置:\ scanf(\

if(ListDelete_Sq(&L,i)==OK) PrintList_Sq(L);break; case 3:printf(\请输入所要查找元素的位置:\\n\ scanf(\ if(LocateElem(&L,i))

printf(\该位置元素的值为:%d!\\n\ else printf(\该位置的元素不存在!\\n\ default:quit=1;

数据结构线性表的基本操作及应用实验报告

实验日期2010.4.19教师签字成绩实验报告【实验名称】第二章线性表的基本操作及应用【实验目的】(1)熟练掌握线性表的基本操作的实现;(2)以线性表的各种操作(建立、插入、删除等)的实
推荐度:
点击下载文档文档为doc格式
3pv1y4vokt8uhsm07tfq670et7c1ze0174r
领取福利

微信扫码领取福利

微信扫码分享