文档库

最新最全的文档下载
当前位置:文档库 > 数据结构实验二数据结构实验二

数据结构实验二数据结构实验二

一,【实验目的】

1,理解和掌握顺序表的结构类型定义方法.

2,掌握建立顺序表的基本方法.

3,掌握顺序表基本操作方法.

二,【实验内容】

1,建立一个顺序表,要求从键盘输入10个整数(每一个用空格隔开),并将该顺序表的元素从屏幕显示出来.

2,根据上面建立的顺序表结合教材上提供的基本操作算法,用C语言函数实现顺序表中的基本操作方法,要求在主函数main()中进行统一调用演示.

3,将测试数据结果用截图的方式粘贴在程序代码后面.

三,【重点和难点】

1,顺序表的结构类型定义.

2,调用建立顺序表,显示顺序表元素和插入和删除等顺序表的算法.

注意:在顺序表操作中i的合法位置检查,表长的改变等比较容易遗漏的地方

程序原代码:

#include "stdafx.h"

#include "iostream.h"

#include "stdlib.h"

#include "conio.h"

const int list_init_size=10; const int listincrement=1; const int error=0; const int ok=1; typedef int status;

typedef struct

{

int* elem;

int length;

int listsize;

}sqlist;

status list_init(sqlist &L) //对表初始化定义

{

L.elem =(int*)malloc(list_init_size*sizeof(int));

if (!L.elem) exit(error);

L.length =0;

L.listsize =list_init_size;

return ok;

}

status list_output(sqlist &L) //输出一个表的函数定义{

cout<

for(int i=0;i

cout<

return ok;

}

status list_insert(sqlist &L,int i,int e)

{

int* newbase,*p,*q;

if(iL.length +1)

{

cout<

*(p+1)=*p;

*q=e;

++L.length ;

return ok;

}

status list_delete(sqlist &L,int i)

{

int *p,*q,e;

if((iL.length))

{

cout<<"你输入位置不合法!"<

return error;

}

p=&(L.elem[i-1]);

e=*p;

q=L.elem+L.length-1;

for(++p;p<=q;++p)

*(p-1)=*p;

--L.length;

return e;

}

int main()

{

int i=0,j,in_num,a; //第j个元素前插入数据in_num

sqlist M;

list_init(M);

M.length =10;

cout<<"请输入10个数据(数据之间用空格分隔!)"

list_output(M);)

cout<a;

switch(a)

{

case 1://选者插入函数

int i,in_num;

cout<i;

cout<in_num;

list_insert(M,i,in_num); //输入数据函数调用

list_output(M);//输出表函数的调用

break;

数据结构实验二数据结构实验二