您的当前位置:首页实验一 顺序表操作

实验一 顺序表操作

2023-06-28 来源:乌哈旅游


实验一 线性表的应用—顺序表操作

一、目的和要求

1.熟悉并掌握线性表的逻辑结构定义、特点。 2.熟悉并掌握顺序表描述方法。

3.熟悉并掌握顺序表的基本操作,包括顺序表的建立与打印,插入与删除数据元素,查找数据元素等。

二、实验内容

(详细说明顺序表操作的各个函数头的说明)

三、实验环境

1.硬件:PC机。 2.软件:DOS 、Windows9.x 、Window2000或以上版本,TurboC 2.0 及以上版本或VC6.0。

四、源程序 #define N 100 #include #include typedef struct a {

float score[N]; int length; }SeqList; //创建顺序表函数

void CreatSList(SeqList *p) { int n,i;

scanf(\"%d\ if(n<0||n>=N)

printf(\"表长输入错误\\n\"); else {

for(i=0;iprintf(\"输入第%d个元素\\n\ scanf(\"%f\}

p->length=n;

} }

//输出顺序表函数

void PrintSList(SeqList *p) { int i;

if(p->length>0) {

printf(\"该顺序表为:\\n\"); for(i=0;ilength;i++) printf(\"%.5f\\n\

} }

//在顺序表中插入元素函数

void InsertSList(SeqList *p , int i, float x) { int j;

if(p->length==N) {

printf(\"表满\\n\");

}

if(i<0||i>p->length+1) {

printf(\"插入位置错误\\n\");

} else

p->score[i-1]=x; p->length++;

for(j=p->length;j>=i;j--)

p->score[j]=p->score[j-1];

PrintSList(p);

}

//在顺序表中删除元素函数 void DeleteSList(SeqList *p) { int i,j;

printf(\"输入所要删除元素的位置\"); scanf(\"%d\

if(i<0||i>p->length) printf(\"删除位置非法\"); else {

for(j=i;jlength;j++) p->score[j-1]=p->score[j];

p->length--; }

PrintSList(p); }

void main() { int i; float x; SeqList *p;

p=(SeqList*)malloc(sizeof(SeqList)); CreatSList(p); PrintSList(p);

printf(\"输入所要插入的位置\"); scanf(\"%d\

printf(\"输入所要插入的元素\"); scanf(\"%f\ InsertSList(p,i,x); DeleteSList(p); }

课本2.5

(1) n3 (2)n (3)n2 (4)n2 (5)无穷大

课本2.7

(1)、(4)、(5)非线性 (2)、(3)线性

课件 第二章 第一节 线性表

4.在一个单链表中p所指结点之前插入一个由指针s所指结点,可执行以下操作: s->next= p->next ; p->next=s; t=p->data;

p->data= s->data ; s->data= t ; 5.在顺序表中做插入操作时首先检查 栈是否满了 。

因篇幅问题不能全部显示,请点此查看更多更全内容