数据结构线性表单链表的查找,插入,删除

  • 格式:doc
  • 大小:422.69 KB
  • 文档页数:29

下载文档原格式

  / 29
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称数据结构

姓名

学号

专业班级

指导教师

目录

第二章线性表的查找、插入、删除 (1)

1.1顺序表的查找 (1)

1.2顺序表的插入 (2)

1.3顺序表的删除 (4)

单链表的建立、插入、删除 (6)

2.1 单链表的建立(尾插法) (6)

2.2 单链表的插入 (8)

2.3 单链表的删除 (10)

第三章栈 (14)

3.1链栈 (14)

3.2 顺序栈 (16)

3.3队列 (18)

3.4杨辉三角 (20)

第四章串 (23)

4.1字符串的建立 (23)

4.2顺序串的插入 (25)

1.线性表的查找、插入、删除

1.1顺序表的查找

程序:

#include

#include

#include

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

#define ElemType int

#define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/

typedef struct

{

ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/

int last; /*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表为-1*/

}Seqlist;

int Locate(Seqlist L,ElemType e)

/*在顺序表L中查找与e相等的元素,若L。elem[i]=e,则找到该元素,并返回i+1,若找不到,则返回-1*/

{ int i=0; /*i为扫描计数器,初值为0,即从第一个元素开始比较*/

while ((i<=st)&&(L.elem[i]!=e))

/*顺序扫描表,直到找到值为e的元素,或扫描到表尾仍没找到*/

i++;

if(i<=st)

return (i+1); /*若找到值为e的元素,则返回其序号*/

else

return(-1); /*若没找到,则返回空序号*/

}

void main()

{

Seqlist l;

int p,q,r;

int i;

printf("请输入线性标的长度:");

scanf("%d",&r);

st=r-1;

printf("请输入线性表的各元素值:\n");

for (i=0;i<=st;i++)

{

scanf("%d",&l.elem[i]);

}

printf("请输入要查找的元素值:\n");

scanf("%d",&q);

p=Locate(l,q);

if(p==-1)

printf("在此线性表中没有该元素!\n");

else

printf("该素在线性表中的位置为:%d\n",p);

}

执行结果:

错误分析:在编写过程中,在编写主函数的时候有落下未编写的,导致运行过程中不识别。

1.2顺序表的插入

程序:

#include

#include

//#include

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

#define ElemType int

#define MAXSIZE 100

typedef struct

{

ElemType elem[MAXSIZE];

int last;

}SeqList;

//#include "common.h"

//#include "seqlist.h"

int InsList(SeqList *L,int i,ElemType e) {

int k;

if((i<1) || (i>L->last+2))

{

printf("插入位置i值不合法");

return(ERROR);

}

if(L->last>= MAXSIZE-1)

{

printf("表已满无法插入");

return(ERROR);

}

for(k=L->last;k>=i-1;k--)

L->elem[k+1]=L->elem[k];

L->elem[i-1]=e;

L->last++;

return(OK);

}

void main()

{

SeqList *l;

int p,q,r;

int i;

l=(SeqList*)malloc(sizeof(SeqList));

printf("请输入线性表的长度:");

scanf("%d",&r);

l->last = r-1;

printf("请输入线性表的各元素值:\n");