欢迎来到天天文库
浏览记录
ID:56758756
大小:68.50 KB
页数:41页
时间:2020-07-07
《实验八 泛型程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验八泛型程序设计软件1502杨成进151303230一、实验目的1.了解链表类的定义与实现,学习其使用方法。2.了解栈类的定义与实现,学习其使用方法。3.了解队列类的定义与实现,学习其使用方法。4.了解C++标准模板库STL的使用方法。二、实验任务1.编写程序link.h,实现教材中例9—6的链表类。在测试程序lab9—1.cpp中定义两个整型链表A和B,分别插入5个元素,然后把B中的元素加入A的尾部。2.编写程序queue.h,用链表实现队列(或栈)类。在测试程序lab9—2.cpp中定义一
2、个整型队列(或栈)对象,插入5个整数,压人队列(或栈),再依次取出并显示出来。3.使用C++标准模板库(STL)中的双向队列类(deque)重新实现上一小题。三、实验步骤1.参照教材《C++语言程序设计》中链表类LinkeclI。ist的定义(教材中的例程9—6.h),给出其实现,注意合理使用NodIe类(教材中的例程9—3.h)的成员函数。在测试程序中定义整型链表A和B,分别插入5个元素,使用循环语句显示链表中的元素,然后把B中的元素加入A的尾部,再显示出来。2.队列类的特点就是其元素的操作顺
3、序为先入先出(FIFO),用上题中的链表类实现队列类,用链表类的成员函数实现队列的成员函数,在测试程序中定义一个整型队列对象,观察队列类中的元素先入先出的特点。3.在程序中包含语句#include,使用deque类的方法push_back()、empty()、pop_front()完成上一小题的要求。程序名:lab9_3.cpp。、四、实验程序1、#include"link.h"intmain(){LinkedListA,B;for(inti=0;i<5;i++){A.I
4、nsertRear(2*i+1);B.InsertRear(2*i+2);}A.Reset();cout<<"链表A的元素为:";while(!A.EndOfList()){cout<5、t();while(!B.EndOfList()){A.InsertRear(B.Data());B.Next();}A.Reset();cout<<"此时,链表A的元素为:";while(!A.EndOfList()){cout<#includeusingnamespacestd6、;#ifndefNULLconstintNULL=0;#endif//NULL#include"9-3.htemplateclassLinkedList{private:Node*front,*rear;Node*prevPtr,*currPtr;intsize;intposition;Node*GetNode(constT&item,Node*ptrNext=NULL);voidFreeNode(Node*p);voidCopyList(const7、LinkedList&L);public:LinkedList(void);LinkedList(constLinkedList&L);~LinkedList(void);LinkedList&operator=(constLinkedList&L);intListSize(void)const;intListEmpty(void)const;voidReset(intpos=0);voidNext(void);intEndOfList(void)const;intCur8、rentPosition(void)const;voidInsertFront(constT&item);voidInsertRear(constT&item);voidInsertAt(constT&item);voidInsertAfter(constT&item);TDeleteFront(void);voidDeleteAt(void);T&Data(void);voidClearList(void);};templateNode*LinkedList::Ge
5、t();while(!B.EndOfList()){A.InsertRear(B.Data());B.Next();}A.Reset();cout<<"此时,链表A的元素为:";while(!A.EndOfList()){cout<#includeusingnamespacestd
6、;#ifndefNULLconstintNULL=0;#endif//NULL#include"9-3.htemplateclassLinkedList{private:Node*front,*rear;Node*prevPtr,*currPtr;intsize;intposition;Node*GetNode(constT&item,Node*ptrNext=NULL);voidFreeNode(Node*p);voidCopyList(const
7、LinkedList&L);public:LinkedList(void);LinkedList(constLinkedList&L);~LinkedList(void);LinkedList&operator=(constLinkedList&L);intListSize(void)const;intListEmpty(void)const;voidReset(intpos=0);voidNext(void);intEndOfList(void)const;intCur
8、rentPosition(void)const;voidInsertFront(constT&item);voidInsertRear(constT&item);voidInsertAt(constT&item);voidInsertAfter(constT&item);TDeleteFront(void);voidDeleteAt(void);T&Data(void);voidClearList(void);};templateNode*LinkedList::Ge
此文档下载收益归作者所有