2024年8月7日发(作者:)

更多优质自考资料尽在百度贴吧自考乐园俱乐部

(/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........

《数据结构》实践环节考核指导

一、类型

课程实验考核

二、目的与要求

本课程的目的和任务是使学习者掌握各种常用的数据结构和典型算法,为学习后续计算机专业

课程提供必要的基础,提高学习者运用数据结构解决实际问题的能力。本考核主要达到两个目

的:

1.检查学生对数据的逻辑结构、存储结构以及算法的理解程度。

2.检查学生对数据结构的选择以及算法设计和实现的应用能力。

三、考核环境

软件要求:

DOS 操作系统或Windows环境的MS-DOS模式;

Turbo C 3.0系统。

四、考核内容

1、线性表的插入和删除

要求对有序顺序表进行插入和删除操作,设数据域为整数。

要求对有序单链表进行插入和删除操作,单链表的数据域是字符串,但不允许重复的串插入表

中。删除操作是根据输入的字符串,先找到相应的结果后删除之。

2、栈和队列操作

对一些简单应用问题,如进制转换、字符串输入等,利用栈或队列来实现。

3、二叉树操作

要求采用二叉链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历及求

所有叶子和结点个数的操作等。

4、图的遍历操作

可采用邻接矩阵或邻接表作为存储结构,完成有向图和无向图的DFS和BFS操作。

5、数据查找

实现顺序查找、折半查找及二叉排序查找算法,比较他们的查找速度。

6、排序

实现直接插入、冒泡、直接选择、快速、堆、归并排序、并鼓励实现基数排序。比较各种排序

算法的运行速度。

五、考核时间与形式

考核时间为60分钟;

采用闭卷形式,所有答案都直接做到考核盘上。

六、注意事项

1、试卷和考核盘都要清楚地书写姓名、准考证号和机号信息;

2、必须用蓝、黑色钢笔或圆珠笔书写,字迹要清楚、卷面要整洁。

3、考试期间严禁左顾右盼、交头接耳;对机器或试卷中出现的问题由监考老师负责解决。

七、题型与要求

请参考以下样题。

样题一

要求:将考试目录下的c源程序test1.c(文件内容见附录一)复制到本地计算机的硬盘上,然

后按要求填入相应的语句,调试运行,并按下面要求输入测试数据,在答题纸上写出你所填入

的语句以及运行测试的结果。

题目:已知在顺序存储结构的线性表L上,以递减顺序输入几个整数:96,64,52,48,43,

33,18,12,在test1.c中填入相应语句,使之能顺利完成该递减序列的插入和删除操作。设表

自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....

俱乐部id:5346389(请牢记它哦~在百度贴吧的搜索框中输入俱乐部id,可以直接进入俱乐部

更多优质自考资料尽在百度贴吧自考乐园俱乐部

(/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........

L中不应有相同的数据元素。测试数据为:依次插入5、18、57,再依次删除48、20、12。

(注:线性表从第0个位置开始存放数据。)

答案:

(1)

(2)

(3)

(4)

测试结果为:

/*test1.c*/

#define ListSize 10

typedef int DataType;

typedef struct{

DataType data[ListSize];

int length;

}seqlist;

#define n 8

#define Error printf

void deletelist(seqlist *L);

void insertlist(seqlist *L);

main()

{seqlist *L;

int i;

char c;

printf(\"请按递减序输入%d个整数(以空格为间隔):n\",n);

for(i=0;i

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

L->length=n;

printf(\"请选择:n\");

printf(\"A-------------------插入---------------n\");

printf(\"B-------------------删除---------------n\");

printf(\"C-------------------退出---------------n\");

scanf(\"n%c\",&c);

while(c!=\'c\'&& c!=\'C\')

{if (c==\'A\'||c==\'a\') insertlist(L);

else deletelist(L);

printf(\"当前顺序表中的数据为:n\");

for (i=0;ilength;i++)

printf(\"%3d\",L->data[i]);

printf(\"n请再选择:n\");

printf(\"A-------------------插入-------------n\");

printf(\"B-------------------删除-------------n\");

printf(\"C-------------------退出-------------n\");

scanf(\"n%c\",&c);

}

自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....

俱乐部id:5346389(请牢记它哦~在百度贴吧的搜索框中输入俱乐部id,可以直接进入俱乐部

更多优质自考资料尽在百度贴吧自考乐园俱乐部

(/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........

}

void insertlist(seqlist *L)

{int x,i,j;

printf(\"n请输入要插入的整数:\");

scanf(\"n%d\",&x);

printf(\"n在下面序列中插入%dn\",x);

for(i=0;ilength;i++)

printf(\"%3d\",L->data[i]);

i=0;

/*********************************************************/

while (请考生填写(1)) i++;

/*********************************************************/

if (x==L->data[i])

Error(\"n重复插入,错误!n\");

else if (L->length>=ListSize) Error(\"n表溢出,无法插入!\");

else {printf(\"n将数据%d插入到第%d的位置上n\",x,i);

/****************************************************/

请考生填写(2)

/****************************************************/

}

}

void deletelist(seqlist *L)

{int x,i,j,num;

printf(\"n请输入要删除的整数:\");

scanf(\"n%d\",&x);

printf(\"n在下面序列中删除%dn\",x);

for(i=0;ilength;i++)

printf(\"%3d\",L->data[i]);

i=0;

/*******************************************/

while (请考生填写(3)) i++;

/*******************************************/

if (x!=L->data[i]) Error(\"n没有找到要删除的整数!n\");

else{printf(\"n删除原表中第%d个位置以后的一个数据%dn\",i,x);

/*******************************************************/

请考生填写(4)

/*******************************************************/

}

}

自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....

俱乐部id:5346389(请牢记它哦~在百度贴吧的搜索框中输入俱乐部id,可以直接进入俱乐部


更多推荐

自考,插入,删除