工学院 数据结构实验报告

2019-03-22 09:00

数据结构实验报告

湖南师范大学工程与设计学院

数据结构实验报告

姓 名:钟智君 年 级:2013

专 业:计算机科学与技术 学 号:2013180502 任课教师:肖柳明

开课时间:2014~2015学年第一学期

- 1 -

数据结构实验报告

实验(一) 实验时间 2014年11月14日下午1:00—4:00 实验地点 工程与设计学院前栋403 实验题目 线性表的存储及操作 实验目的 1) 掌握顺序存储结构和链式存储结构的特点; 2) 掌握常见算法。 已知两个按元素值有序的线性表A和B,编程实现:将A和B有序归并成一个按元素值有序的线性表。 实验内容 - 2 -

数据结构实验报告

一、算法基本思想:

1) 从键盘输入两个按元素值有序的线性表A和B的值;

2) 根据输入把数据元素分别以顺序存储结构和线性链表存储; 3) 有序归并成一个新的按元素值有序的线性表C; 4) 输出显示合并后的线性表C。 测试数据:A=(3,5,8,11),B=(2,6,8,9,11,15,20) 二、

顺序存储结构: typedef struct{ int elem[100]; int length; int listsize; }SqList; t

链式存储结构:

typedef struct LNode{ int data;

struct LNode *next; }LNode,*LinkList; int create_sq(SqList &a,int n){} int displaya(SqList &a){}

结构定义:

int create_List(LinkList &b,int n){} int displayb(LinkList b){}

void getList_Sq(SqList a,LinkList b,LinkList c){} void getList_Sq1(SqList a,LinkList b,SqList &c){} int display(SqList c){} int displayc(LinkList b){}

- 3 -

数据结构实验报告

int main(int argc, char *argv[]){} 三、

算法描述:

设两个指针分别指向LA表和LB表中某个元素,若设i当前所指元素为a,j当前所指元素为b,则插入LC中元素c=min(a,b)。i和j的初值都为1,在所指元素插入LC后,在LA和LB中顺序后移。

创建顺序表:

int create_sq(SqList &a,int n) {

int num; int i=0;

while(i

cin>>num; a.elem[i]=num; a.length=i++; } return 1; } 创建链表

int create_List(LinkList &b,int n) {

LNode *q=b; q->next=NULL; LNode *p;

for(int i=n;i>0;--i) {

int num;

p=(LinkList)malloc(sizeof(LNode));

- 4 -

数据结构实验报告

cin>>num; p->data=num; p->next=NULL; q->next=p; q=q->next; } }

有序归并两个表: 顺序存储

void getList_Sq1(SqList a,LinkList b,SqList &c) {

int k=0,i=0;

while(b!=NULL||kb->data) {

c.elem[i++]=b->data; c.length=i-1; b=b->next; } else {

c.elem[i++]=a.elem[k++]; c.length=i-1; }

while(b!=NULL) {c.elem[i++]=b->data; b=b->next; c.length=i-1;}

- 5 -


工学院 数据结构实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新(2012秋)人教版英语七年级上册讲义

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: