下载此文档

经典数据结构上机题—答案.doc


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
数据结构上机实验题目
实验一 线性表的顺序存储结构 
实验学时 2学时
背景知识:顺序表的插入、删除及应用。 
目的要求:


实验内容 
1。输入一组整型元素序列,建立顺序表。 
2。实现该顺序表的遍历。
3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。
4.判断该顺序表中元素是否对称,对称返回1,否则返回0.
5。实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 

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”,&L.length);
for(i=0;i<L。length;i++)
scanf("%d",&[i]);
}
void printlist(Sqlist &L) ﻩ//以输出的形式实现对该顺序表的遍历
{int i;
for(i=0;i<;i++)
ﻩ printf(”%d ",[i]);
printf("\n");

void Searchlist(Sqlist &L,int x)ﻩ //在顺序表中进行顺序查找某一元素x,查找成功则返回其存储位置i,否则返回错误信息
{int i,k=—1;
for(i=0;i〈;i++)
ﻩ if([i]==x){
ﻩﻩ k=i+1;printf("%d ",k);}
if(k==-1)
 printf("error!");
 printf("\n");

void Inseri(Sqlist &L,int i,int x) ﻩ//在顺序表的第i个位置上插入一个元素x
{int j;
for(j=L。length;j〉=i;j-—)
[j]=L。elem[j—1];
[j]=x;
++;
}
void Delete(Sqlist &L,int i) //删除顺序表中第i个元素
{int j;
for(j=i;j<;j++)
ﻩL.elem[j—1]=L。elem[j];
L.length--;

void Insert(Sqlist &L,int x) //输入一个元素x,把它插入到有序表中,使顺序表依然有序。
{int i,j;
 if(L.length==MAXSIZE) exit(OVERFLOW); //表满,不能插入
 for(i=1;i<=L。length&&L.elem[i-1]〈=x;i++);
ﻩ for(j=L.length;j>=i;j—-)
 L。elem[j]=[j-1];
L。elem[i-1]=x;
++;

void Creatlist_sorted(Sqlist &L)ﻩ //利用有序表插入算法建立一个有序表
{int i,num;
ElemType x;
L.length=0;
printf(”请输入顺序表的长度:”);
scanf(”%d”,&num);
for(i=1;i<=num;i++)
 {
ﻩ scanf(”%d”,&x);
ﻩ Insert(L,x);


void Merger(Sqlist &p,Sqlist &r,Sqlist &c) //建立两个非递减有序表,并把它们合并成一个非递减有序表
{
ElemType *a,*b,i=0,j=0,k=0;
a=&[0];
b=&r。elem[0];
=p.length+;
 while(i<p.length&&j<)

经典数据结构上机题—答案 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人AIOPIO
  • 文件大小118 KB
  • 时间2021-02-15