- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《面口二0十二群体体数题 目
《面
口
二0十二群体体数
题 目
\o Current Document 学生姓名 学 院
系 别
专 业
班 级
任课教师
群体类和群体数据
一五年
月
类和群
据
学校代码: 学 号:
寸象程序设计》实验报告
实验目的
了解节点类的声明和实现,学习其使用方法
了解链表类的声明和实现,学习其使用方法
了解栈类的声明和实现,学习其使用方法
了解队列类的声明和实现,学习其使用方法
掌握对数组元素排序的方法
掌握对数组元素查找的方法
实验任务
编写程序Node.h实现例9-5的节点类,并编写测试程序Iab9_1.cpp,实现链表 的基本操作
编写程序link.h 实现例9-6的链表类,在测试程序lab_2.cpp中声明两个整型 链表A和B,分别插入5元素,然后把B中的元素加入A的尾部
编写程序queue.h,用链表实现队列(或栈),在测试程序 lab9_3.cpp中声明
一个整型队列(或栈)对象,插入 5个整数,压入队列(或栈),再依次取出并 显示出来。
(选做)声明course (课程)类,有属性:课程名char name[21]、成绩short score ;在实验七的 student 类中增加属性;所修课程 course ,为课程类对象的链表 在测试程序中测试这个类,学生类与课程类关系如图
将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组
类中,作为成员函数,实现并测试这个类
三、实验内容:
1. //9-5.h
#ifndef NODE_CLASS
#define NODE_CLASS template class T class Node
{
private:
NodeT *next; // 指向后继节点的指针
public:
T data; // 数据域
Node (const T item, NodeT* ptrnext = NULL);
void InsertAfter(NodeT *p);
NodeT *DeleteAfter(void);
NodeT *NextNode(void) const;
};
template class T
NodeT::Node(const T item, NodeT* ptrnext) :
data(item), next(ptrnext)
{}
template class T
NodeT *NodeT::NextNode(void) const
{
return next;
}
template class T
void NodeT::InsertAfter(NodeT *p) {
p-next = next; //p next = p; //
节点指针域指向当前节点的后继节点
当前节点的指针域指向 p
template class T
{NodeT *tempPtr
{
NodeT *tempPtr = next; // if (next == NULL) // return NULL;
next = tempPtr-next; // return tempPtr; //
}
#endif // NODE_CLASS //Node.h
将欲删除的节点地址存储到 tempPtr 中 如果当前节点没有后继节点,则返回 NULL
使当前节点的指针域指向 tempPtr 的后继节点 返回被删除的节点的地址
#ifndef NODE_LIBRARY #define NODE_LIBRARY #include iostream #include cstdlib
#include 9_5.h using namespace std;
template class T
NodeT *GetNode(const T item, NodeT *nextPtr = NULL) {
NodeT *newNode;
newNode = new NodeT(item, nextPtr);
if (newNode == NULL) // 如果分配内存失败,程序中止
{
cerr Memory allocation failure! endl; exit(1);
}
return newNode;
}
enum AppendNewline {noNewline,addNewline}; template class T
void PrintList(NodeT *head, AppendNewline addnl = noNewline) {
NodeT *currPtr = head;
while(currPtr != NULL)
{
if(addnl == addNewline) cout currPtr-data e
文档评论(0)