视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
顺序表的查找 删除 插入
2025-09-25 21:24:57 责编:小OO
文档
数

实 

(一)  

实验一: 线性表的基本操作

一、实验目的

1.掌握使用Turbo C上机调试线性表的基本方法;

2.掌握顺序表的基本操作:插入、删除运算的实现。

二、实验要求

1、阅读下面的程序,分析各个函数的功能,并输入数据调试。

2、现要删除线性表某位置上的元素,并保持线性表原有的顺序不变,请在给出的程序中加入一个删除函数,实现上述功能要求。ElemType delete_sq(SqList *L, int i)为删除函数的原型,L表示线性表,I表示插入位置。注意菜单中给出了菜单项,请在switch语句给出调用语句,

#include

#include

#define MAXSIZE 20

typedef int ElemType;

typedef struct

{ ElemType a[MAXSIZE];

int length;

}SqList;

SqList a,b,c;

void creat_list(SqList *L);

void out_list(SqList L);

void insert_sq(SqList *L,int i,ElemType e);

int locat_sq(SqList L,ElemType e);

main()

{ int i,k,loc; ElemType e,x;

do { printf("\\n\\n\\n");

printf("\\n 1. creat " );

printf("\\n 2. insert");

printf("\\n 3. delete");

printf("\\n 4. find");

printf("\\n 5. end");

printf("\\n***************");

printf("\\n input:1-5");

scanf("%d",&k);

switch(k)

{ case 1:{ creat_list(&a); out_list(a);} break;

case 2:{ printf("\\n i,e=?"); scanf("%d,%d",&i,&e);

insert_sq(&a,i,e); out_list(a);

} break;

case 3:{ printf("\\n i=?"); scanf("%d",&i);

DeleteList(&a,i); out_list(a);

} break;

case 4:{ printf("\\n e=?"); scanf("%d",&e);

loc=locat_sq(a,e);

if (loc==-1) printf("\\n not find  %d",loc);

else printf("\\n find weizhi shi  %d",loc);

} break;

} /* switch */

}while(k!=5);

printf("\\n byebye");

printf("\\n enter,return");getch();

}

void creat_list(SqList *L)

{ int i;

printf("\\n n=?"); scanf("%d",&L->length);

for(i=0;ilength;i++){ printf("\ data %d=?",i);

scanf("%d",&(L->a[i]));

}

} /* creat_list */

void out_list(SqList L)

{ int i; char ch;

printf("\\n");

for(i=0;i<=L.length-1;i++) printf("%10d",L.a[i]);

printf("\\n\\n "); getch();

} /* out_list */

void insert_sq(SqList *L,int i,ElemType e)

{     int j;

if(i<1||i>L->length+1){printf("error");}//保证i插入的位置是第一个之前到最后一个之后插入的

L->length++;//L的长度加1 

for(j=L->length-1;j>=i-1;j--)

     L->a[j+1]=L->a[j]; //将第i个元素(包括本身)向后移一位.

L->a[i-1]=e;//第i个位置赋上e的值

} /* insert_sq */

int locat_sq(SqList L, ElemType e)

{ int i=0;

while(i<=L.length-1 && L.a[i]!=e) i++;

if(i<=L.length-1) return(i+1);

else return(-1);

}/* locat_sq */

int DeleteList(SqList *L,int i)

{

int j;

if(i<1||i>L->length){printf("error");return -1;}//保证删除的是第一个到最后一个之间的元素

L->length--;//L的长度减1

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

     L->a[j]=L->a[j+1];//将i向后的元素向后移一位

     return 1;

}

三、实验结果

1﹑查找

2、插入

3、删除下载本文

显示全文
专题