实验一线性表的顺序存储结构
实验学时 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...经典数据结构题
数据结构上机作业
数据结构上机作业