《数据结构与算法》实验四 1017.docx

上传人:b****8 文档编号:9230836 上传时间:2023-02-03 格式:DOCX 页数:8 大小:108.54KB
下载 相关 举报
《数据结构与算法》实验四 1017.docx_第1页
第1页 / 共8页
《数据结构与算法》实验四 1017.docx_第2页
第2页 / 共8页
《数据结构与算法》实验四 1017.docx_第3页
第3页 / 共8页
《数据结构与算法》实验四 1017.docx_第4页
第4页 / 共8页
《数据结构与算法》实验四 1017.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

《数据结构与算法》实验四 1017.docx

《《数据结构与算法》实验四 1017.docx》由会员分享,可在线阅读,更多相关《《数据结构与算法》实验四 1017.docx(8页珍藏版)》请在冰豆网上搜索。

《数据结构与算法》实验四 1017.docx

《数据结构与算法》实验四1017

《数据结构与算法》课程实验报告(四)

实验项目

编号

实验名称

实验四C++及单链表操作

实验课时

2

主要仪器设备

附属设备

主要使用软件

实验时间

2013-10-17

一、实验目的

通过本次实验,能够很好掌握C++类知识、类模板、单链表结构及主要成员函数等相关知识。

2、实验内容及要求

1、(必做题)用C++类知识定于一个Date类:

数据成员:

Year,Month,Day,

成员函数:

Date(intyear,intmonth,day);

//构造函数用于初始化数据成员

boolModify_Year(constintyear);//用于修改数据成员

boolModify_Month(constintmonth);//用于修改数据成员

voidDisplay_Date();//用于显示数据成员

boolIsLeap();//用于判断是否闰年

另外:

闰年:

整百年能被400整除的是闰年.(如:

2000)

除整百年外的年份能被4整除的是闰年.

 

《代码范例1:

ClassDate

{

Private:

IntYear;

IntMonth;

IntDay;

Public:

Date(intyear,intmonth,intday);

boolModify_Year(constintyear);

boolModify_Month(constintmonth);

voidDisplay_Date();

boolIsLeap();

};

BoolDate:

:

Date(intyear,intmonth,intday)

{

Year=year;Month=month;Day=day;

}

boolDate:

:

Modify_Year(constintyear)

{

Year=year;

}

boolDate:

:

Modify_Month(constintmonth)

{

Month=month;

}

boolDate:

:

IsLeap()

{

If(0==Year%400||0==Y%400)

{returntrue;}

Else

{returnfalse;}

}

VoidDate:

:

Display_Date()

{;}

Voidmain()

{

Datedate(2013,10,18);//定于一个Date类对象date

Date.Display_Date();//利用对象date调用函数

}

2、利用template知识构造一个通用的求最小值函数模板

(注意:

掌握好的同学试着构造一个通用的排序函数模板

(必做题)

VoidSort_Data(T[],intsize))

《代码范例1:

Template

T1MiN(T1a,T1b)

{

Returna>b?

b:

a;

}

Voidmain()

{

Cout<

Cout<

}

3、利用template知识构造一个简单的A类模板(必做题)

Template

ClassA

{

Public:

T1a;

T2b;

VoidSet(T1aa,T2bb);

{

a=aa;

b=bb;

}

VoidDisplay();

};

Template

VoidA:

:

Set(T1aa,T2bb)

{

a=aa;

b=bb;

}

VoidA:

:

Display()

{

Cout<

}

Voidmain()

{

Aa1;

a1.Set(12,13.2);

Aa2;

}

4、用类模板、danlian表知识定义单链表类,并举例加以验证。

(注:

类中须要有增加、删除、)。

(***选做)

《代码范例:

(1)、先定义数据元素(结点)类:

用于结点元素中

data、next的封装。

D

例如:

Template

structNode

{

Elemdata;

Node*Next;

}

(3)、然后定义数据元素(结点)类:

用与形成链表及相关操作

部分代码:

Template

ClassLinkList

{

Protected:

Node*head;//数据成员

Public:

Node*GetElementPtr(intpos);

LinkList();

~LinkList();

BoolLength()const;

BoolDeleteElem(intpos,Elem&e);

BoolInsertElem(intpos,Elem&e);

};

5、用单链表知识定义多项式类,并举例加以验证(*****选做)。

3、实验预备知识

1、类模板

类模板:

是对一批仅仅类成员(数据成员或成员函数)的数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,从而大大提高编程的效率。

例1:

ClassT1

{intdata;

voidSet(intda)

{data=da;}

};

ClassT2

{doubledata;

voidSet(doubleda)

{data=da;}

};

2、类模板定义格式

定义类模板的一般形式:

template

class类名

{

类声明体;

};

类模板中成员函数定义格式:

template

函数返回值类型类名<类型名列表>:

函数名(参数列表)

{;}

3、模板类对象的定义

与函数模板相同,类模板只有使用的时候才被具体化为某一种类型

使用模板类来产生对象时,按如下形式声明:

类名<模板参数表>对象名1,......对象名n;

 

4、顺序表的知识参考课件

插入操作:

删除操作:

 

5、单链表的知识参考课件

删除操作:

插入操作:

 

四、实验存在问题和解决办法

五、意见和建议

 

六、教师评语(或成绩)

教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1