( 二〇一一年 十 一月 《面向对象的程序设计》实验报告 学校代码: 10128 学 号: 题 目 : 群 体 类 和 群 体 数 据 学 生 姓 名 : 学 院 : 理 学 院 系 别 : 数 学 系 专 业 : 信 息 与 计 算 科 学 班 级 : 任 课 教 师 : 2 一、实验目的 1、了解节点类的声明和实现,学习其使用方法 2、了解链表类的声明和实现,学习其使用方法 3、了解栈类的声明和实现,学习其使用方法 4、了解队列类的声明和实现,学习其使用方法 5、掌握对数组元素排序的方法 6、掌握对数组元素查找的方法 二、实验内容 1.、编写程序 No de.h 实现例 9-5 的节点类,并编写测试程序 lab9_1.cp p ,实现链表的基本操作 2、编写程序 lin k.h 实现例 9-6 的链表类,在测试程序 lab_2.cp p 中声明两个整型链表 A和 B,分别插入 5 元素,然后把 B 中的元素加入 A 的尾部 3、编写程序 q u eu e.h,用链表实现队列(或栈),在测试程序 lab9_3.cp p 中声明一个整型队列(或栈)对象,插入 5 个整数,压入队列(或栈),再依次取出并显示出来。 4、将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组类中,作为成员函数,实现并测试这个类。 三、实验程序及结果 1. 程序一 //9_5.h #ifndef NODE_CLASS #define NODE_CLASS //类定义部分 template class Node { private: Node *next; //指向后继节点的指针 public: T data; //数据域 // 构造函数 Node (const T& item, Node* ptrnext = NULL); // 在本节点之后插入一个同类节点 p void InsertAfter(Node *p); // 删除本节点的后继节点,并返回其地址 Node *DeleteAfter(void); 3 // 获取后继节点的地址 Node *NextNode(void) const; }; // 类的实现部分 // 构造函数,初始化数据和指针成员 template Node::Node(const T& item, Node* ptrnext) : data(item), next(ptrnext) {} // 返回私有的指针成员 template Node *Node::NextNode(void) const { return next; } // 在当前节点之后插入一个节点p template void Node::InsertAfter(Node *p) { p->next = next; //p 节点指针域指向当前节点的后继节点 next = p; //...