经典数据结构上机题 答案

发布 2021-05-29 11:30:28 阅读 5033

实验一线性表的顺序存储结构

实验学时 2学时

背景知识:顺序表的插入、删除及应用。

目的要求:

1.掌握顺序存储结构的特点。

2.掌握顺序存储结构的常见算法。

实验内容 1.输入一组整型元素序列,建立顺序表。

数据结构上机实验题目。

实验一线性表的顺序存储结构

实验学时 2学时

背景知识:顺序表的插入、删除及应用。

目的要求:

1.掌握顺序存储结构的特点。

2.掌握顺序存储结构的常见算法。

实验内容 1.输入一组整型元素序列,建立顺序表。

2.实现该顺序表的遍历。

3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。

4.判断该顺序表中元素是否对称,对称返回1,否则返回0。

5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。

6.输入整型元素序列利用有序表插入算法建立一个有序表。

7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。

8. 利用该顺序结构实现循环队列的入队、出队操作。

8.编写一个主函数,调试上述算法。

#include <>

#include <>

#define overflow 0

#define maxsize 100

typedef int elemtype;

typedef struct list

elemtype elem[maxsize];

int length;

sqlist;

void creatlist(sqlist &l)

int i;

printf("请输入顺序表的长度输入一组整型元素序列,建立一个顺序表。

scanf("%d",&

for(i=0;i<

scanf("%d",&

void printlist(sqlist &l以输出的形式实现对该顺序表的遍历。

int i;

for(i=0;i<

printf("%d ",printf("");

void searchlist(sqlist &l,int x在顺序表中进行顺序查找某一元素x,查找成功则返回其存储位置i,否则返回错误信息。

int i,k=-1;

for(i=0;i<

if(k=i+1;printf("%d ",k);}

if(k==-1)

printf("error!")

printf("");

void inseri(sqlist &l,int i,int x在顺序表的第i个位置上插入一个元素x

int j;

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

void delete(sqlist &l,int i删除顺序表中第i个元素。

int j;

for(j=i;j<

void insert(sqlist &l,int x输入一个元素x,把它插入到有序表中,使顺序表依然有序。

int i,j;

if( exit(overflow); 表满,不能插入。

for(i=1;i<=

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

void creatlist_sorted(sqlist &l利用有序表插入算法建立一个有序表。

int i,num;

elemtype x;

printf("请输入顺序表的长度:")

scanf("%d",&num);

for(i=1;i<=num;i++)

void merger(sqlist &p,sqlist &r,sqlist &c) /建立两个非递减有序表,并把它们合并成一个非递减有序表。

elemtype *a,*b,i=0,j=0,k=0;

a=&b=&

while(i<<

if(j==

for(;k<

else if(i==

for(;k<

printf("请输入要插入的值x:")

scanf("%d",&x);

inseri(l,i,x);

printlist(l);break;

case 5:printf("请输入要删去的元素的位置i:")

scanf("%d",&i);

if(i<1||i>

printf("error!");break;}

delete(l,i);

printlist(l);break;

case 6:creatlist_sorted(l);

printlist(l);break;

case 7:creatlist_sorted(l);

creatlist_sorted(m);

merger(l,m,n);

printlist(n);break;

case 8:creatlist_sorted(l);

printf("请输入要插入的元素x:")

scanf("%d",&x);

insert(l,x);

printlist(l);break;

实验二链式存储结构(一)--单向链表的有关操作

实验学时 3学时

背景知识:单向链表的插入、删除及应用。

目的要求 1.掌握单向链表的存储特点及其实现。

2.掌握单向链表的插入、删除算法及其应用算法的程序实现。

实验内容 1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。

2.遍历单向链表。

3.把单向链表中元素逆置(不允许申请新的结点空间)。

4.在单向链表中删除所有的偶数元素结点。

5.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。

经典数据结构题

目录。第一部分选择题 2 第二部分填空题 19 第三部分应用题 24 1.数据的四种基本逻辑结构是指 a 数组 链表 树 图形结构b 线性表 链表 栈 广义表。c 线性结构 链表 树 图形结构 d 集合 线性结构 树 图形结构。2.在以单链表为存储结构的线性表中,数据元素之间的逻辑关系用 表示。a ...

数据结构上机作业

1.已知输入x y z三个不相等的整数,试设计一个算法,使这三个数按从小到大的顺序进行排序并输出,并考虑此算法的比较次数和元素的移动次数。2.猴子吃桃子问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉了一半,又多吃了一个 以后每天早上都吃了前一天剩下...

数据结构上机作业

数据结构 上机作业。黑色 必做 蓝色 选作 线性表。1 某软件公司大约有30名员工,每名员工有姓名 工号 职务等属性,每年都有员工离职和入职。把所有员工按照顺序存储结构建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且打印最新的员工名单。动态分配存储,malloc,realo...