首页 > 知识百科 > 

数据结构实习报告

2023-04-10   来源:万能知识网

数据结构实习报告范文

精选范文:数据结构实习报告(共2篇)

一、需求分析1、 程序所实现的功能;2、 程序的输入,包含输入的数据格式和说明;3、 程序的输出,程序输出的形式;4、 测试数据,如果程序输入的数据量比较大,需要给出测试数据;5、 合作人及其分工二、设计说明1、 主要的数据结构设计说明;2、 程序的主要流程图;3、 程序的主要模块,要求对主要流程图中出现的模块进行说明4、 程序的主要函数及其伪代码说明 (不需要完整的代码) ;5、 合作人设计分工三、上机结果及体会1、 合作人编码分工2、 实际完成的情况说明(完成的功能,支持的数据类型等);3、 程序的性能分析,包括时空分析;4、 上机过程中出现的问题及其解决方案;5、 程序中可以改进的地方说明;6、 程序中可以扩充的功能及设计实现假想;说明:1、 如果程序比较大,可以将设计说明分为概要设计和详细设计两部分。概要设计主要负责程序的流程、模块、抽象数据类型设计;详细设计负责程序的数据类型定义和主要函数的说明。2、 设计说明中,不需要写出代码或者模块的详细代码,只需要写出主要函数的伪代码说明。


(资料图)

[数据结构实习报告(共2篇)]

篇一:数据结构实训报告

《数据结构》

课程设计报告

题 目:

班 级:

姓 名:

学 号:

指导教师:

实现两个链表的合并  08计管(2)班   肖丽娜      20xx 年 6 月 17 日

目录

一、 课程设计的性质、目的及要求 ············································· 3

一、 课程设计性质 ···································································· 3

二、 设计目的 ············································································ 3

三、 设计要求 ············································································ 3

二、 任务描述 ················································································· 3

三、 软件环境 ················································································· 4

四、 算法设计思想及流程图 ························································· 4

一、 算法设计思想 ···································································· 4

二、 流程图 ················································································ 5

五、 源代码 ····················································································· 6

六、 运行结果 ················································································· 9

七、 收获及体会 ··········································································· 10

一、 课程设计的.性质、目的及要求

一、 课程设计性质

性质:数据结构设计是《数据结构》课程的实践环节,也是我院各专业必修的计算机技术基础课程之一。

二、 设计目的

目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,学生将课本上的理论知识和实际有机的结合起来,锻炼学生分析、解决较复杂问题的能力,本次课程设计,也是为了锻炼我们应用编程语言的语法规则和已经掌握的一些较为简单的算法,自己解决一个较简单的课题,初步积累编程经验。提高学生独立编写大编程的能力。

三、 设计要求

计算机科学是一门研究数据表示和数据处理的科学。数据是计算机化的信息,是计算机可以直接处理的最基本和最重要的对象。无论是进行科学计算,数据处理,过程控制,还是对文件的存储和检索及数据库技术的应用,都是对数据进行加工处理的过程。

希望通过学习掌握程序设计的方法与编程技术,我们能学会良好的程序设计风格,为在计算机不同领域的应用打下坚实的基础。希望通过本次的学习,我们能利用计算机解决实际题。与此同时,希望能通过此次的实训来提高我们的思维能力,促进我们的综合应用能力和我们的专业素质。

二、 任务描述

实现两个链表的合并

基本功能要求:

1、建立两个链表A和B,链表元素的个数没别为m和n个。

2、假设元素分别为(x1,x2,···xm),和(y1,y2,···yn)。把他们合并成一个线性表C,使得:

当m>=n时,C=x1,y1,x2,y2,···xn,yn,···xm

当n>m时,C=y1,x1,y2,x2,···ym,xm,···,yn

输出线性表C

3、用直接插入排序法对C进行升序排序,生成表D,并输出表A ,B ,C ,D。

三、 软件环境

编辑工具:

Turbo C2.0

功能介绍:

Turbo C2.0是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。

四、 算法设计思想及流程图

一、 算法设计思想

1、 定义链表的结构

[数据结构实习报告(共2篇)]

typedef struct

{

int data[maxsize];

int top;

}list;

2、 创建链表A,B,C,D,由于这链表是自己创立的,我们首先要对他

们进行申请存储空间,首先我们就定义头文件#include,用malloc(sizeof())函数来现实,这是申请链表存储空间的标志.

3、 用指针top的移动来实现对链表A,和B进行数据的输入输出,再

进行链表长度的比较,在用直接插入法对A和B中的数据查到C中,当m>=n的时候,先插A的元素,再插入B的元素

C->data[C->top]=A->data[j];

j=j+1;

C->top=C->top+1;

C->data[C->top]=B->data[k];

k=k+1;

C->top=C->top+1;

当n>m的时候,先插B的元素,在插入A的元素

C->data[C->top]=B->data[j];

j=j+1;

C->top=C->top+1;

C->data[C->top]=A->data[k];

k=k+1;

C->top=C->top+1;

4、 用冒泡排序法对C中元素进行排序生成表D,由于要进行升序排序,

所以只需比较D->data[j]data[j-1],再输出D->data[j],移动指针D->top,每进行一次输出,指针就移动一次D->top+1,直到C中元素都排序完,最后输出D。

5、

打印链表A,B,C,D。

二、 流程图

下页

篇二:数据结构实习报告

测绘与国土信息工程学院

实验态度:

实验成果:

实验报告:

《数据结构》课程 实验报告 姓 名:

学 号:

班 级:

成 绩:

、认真 2、良好 3、一般 4、不认真 、优秀 2、可信 3、一般 4、不真实 、清晰完整 2、比较完整 3、不清晰   教师签名:111

交报告日期:

20xx年  7 月  1日

目录

实验一 线性表的链表实现类的设计 ................................................................................. 4

实验二 顺序栈的自定义类设计 ......................................................................................... 8

实验三 字符串的操作类设计 ........................................................................................... 12

实验四 树和二叉树的自定义类的设计 ........................................................................... 19

实验五 图的最短路径算法设计 ....................................................................................... 22

实验六 自定义类应用综合设计 ....................................................................................... 27

实验一 线性表的链表实现类的设计

一、 需求分析

本次程序设计要求建立一个以链表为储存方式的线性表,以及实现线性表所需求的各种功能。

对线性表的操作有:

(1)输入形式为从键盘输入,用户根据界面的提示从键盘直接输入所对应的数即可。输入的值要求为整数类型,用户输入其它类型的数据时(例如字符串)会产生不可预测的错误。

(2)输出的界面为DOS窗口,系统按照用户输入的数据类型,将会把相应的输出结果显示到界面上。

(3)程序可以建立一个以链表形式储存的线性表,对线性表可以进行查找、删除、插入、构造、销毁和获取链表长度的操作。

(4)以L1={0, 5, 9, 10, 12, 12, 17, 20, 24}构造链表;找

到重复的

[数据结构实习报告(共2篇)]

};

class List{

public:

List(){first = new LinkNode;}      List(const int x){first = new LinkNode(x);}   List(List&

L);

~List(){

MakeEmpty();

first;

}

LinkNode* Search(int x);

LinkNode* Locate(int i);

LinkNode* GetHead()const {return first;}   int GetData(int i);

void DeleteRepeatedElem();

void Input();

void Display();

List&

operator = (List&

L);

private:

LinkNode* first;

};

List::List(List&

L)

{

int val;

LinkNode * srcPtr = L.GetHead();

LinkNode * desPtr = first = new LinkNode;

while(srcPtr->link != NULL){

val = srcPtr->link->data;

desPtr->link = new LinkNode(val);

desPtr = desPtr->link;

srcPtr = srcPtr->link;

}

desPtr->link = NULL;

}

三、 显示详细设计

int main(int argc, char *argv[])

{

List L1;

int d;

L1.Input();

L1.Display();

L1.DeleteRepeatedElem();

下页

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签

数据结构

推荐词条