1 / 10
文档名称:

数据结构实验报告--实验4.doc

格式:doc   大小:151KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告--实验4.doc

上传人:zl201163zl 2018/7/11 文件大小:151 KB

下载得到文件列表

数据结构实验报告--实验4.doc

文档介绍

文档介绍:数据结构实验报告——实验4
学号: 姓名: 得分:______________
一、实验目的
1、复****线性表的逻辑结构、存储结构及基本操作;
2、掌握顺序表和(带头结点)单链表;
3、了解有序表。
二、实验内容
1、(必做题)假设有序表中数据元素类型是整型,请采用顺序表或(带头结点)单链表实现:
(1)OrderInsert(&L, e, int (*compare)(a, b))
//pare,在有序表L的适当位置插入元素e;
(2)OrderInput(&L, int (*compare)(a, b))
//pare,并利用有序插入函数OrderInsert,构造有序表L;
(3) OrderMerge(&La, &Lb, &Lc, int (*compare)())
//pare,将两个有序表La和Lb归并为一个有序表Lc。
2、(必做题)请实现:
(1)升幂多项式的构造,升幂多项式是指多项式的各项按指数升序有序,约定系数不能等于0,指数不能小于0;
(2)两个升幂多项式的相加。
三、算法描述
(采用自然语言描述)
创建带头节点的链表,
输入两个有序表数据La Lb
归并两个有序表得有序表Lc
输出三个有序表
输入需插入数据e
将e插入有序表Lc
输出插入e后的Lc
2.
创建链表
按指数升序输入多项式得序数和指数
输出多项式
按指数升序输入第二个多项式得序数和指数
两个多项式相加
输出第二个多项式和两个多项式得和
四、详细设计
(画出程序流程图)
1.
创建带头节点的链表
输入两个有序表数据La Lb
开始
归并两个有序表得有序表Lc
输出三个有序表
输入需插入数据e
将e插入有序表Lc
输出插入e后的Lc
结束
2.
创建链表
按指数升序输入多项式得序数和指数
开始
输出多项式
按指数升序输入第二个多项式得序数和指数
两个多项式相加
输出第二个多项式和两个多项式的和
结束
五、程序代码
(给出必要注释)
1.
#include<>
#include<>
typedef struct LNode
{
int date;
struct LNode *next;
} LNode,*Link;
typedef struct LinkList
{
Link head;//头结点
int lenth;//链表中数据元素的个数
} LinkList;
pare (LinkList *L,int e)//pare
{
int Lc=0;
Link p;
p=L->head;
p=p->next;
while(p!=NULL)
{
if(e>p->date)
{
p=p->next;
Lc++;
}
else
return Lc;
}
return Lc;
}
void OrderInsert (LinkList *L,int e,int (*compare)())//pare,在有序表L的适当位置插入元素e;
{
Link temp,p,q;
int Lc,i;
temp=(Link)malloc(siz

最近更新