ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:49.67KB ,
资源ID:3010076      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3010076.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++大作业说明.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++大作业说明.docx

1、C+大作业说明面向对象程序设计大作业的说明一、3个示例(相应的cpp文件和h文件具有完整的源代码)1 以下程序涉及类模板,补充顺序栈类模板成员函数的定义,利用队列实现栈的逆置。/sq_queue_sq_stack.h#include/定义循环队列模板类template class sq_queue protected: int mm; /循环队列容量 int front,rear; /队头、队尾指针 T*q; /循环队列向量指针 public: sq_queue(int); /构造函数,建立空循环队列 int emptyqueue(); /测试队列是否下溢 void enqueue(T); /

2、入队 T dequeue(); /出队;/定义顺序栈模板类template class sq_stack private: int mm; /顺序栈容量 int top; /栈顶指针 T*s; /顺序栈向量指针 public: sq_stack(int); /构造函数,建立空栈 int emptystack(); /测试栈是否下溢 void push(T); /入栈 T pop(); /出栈 T get(); /读栈顶元素 void print(); /从栈顶到栈底输出栈中元素;/定义循环队列类模板构造函数templatesq_queue:sq_queue(int m) mm=m+1; /设置

3、队列容量,考虑到循环队列少用一个存储单元 q=new Tmm; /动态分配循环队列存储空间 front=rear=mm-1; /设置空队列/定义顺序栈类模板构造函数templatesq_stack:sq_stack(int m) mm=m; /设置顺序栈容量 s=new Tmm; /动态分配顺序栈存储空间 top=0; /设置空栈/定义循环队列类模板成员函数templateint sq_queue:emptyqueue() if(front=rear) return 1; else return 0;templatevoid sq_queue:enqueue(T x) rear=(rear+1

4、)%mm; qrear=x;templateT sq_queue:dequeue() front=(front+1)%mm; return qfront;/定义顺序栈类模板成员函数/顺序表逆置.cpp#include sq_queue_sq_stack.hvoid main() sq_queue queue(20); /建立容量为20的队列对象 sq_stack stack(20); /建立容量为20的栈对象 char ch; for(ch=a;ch=f;ch+) stack.push(ch); stack.print(); while(!stack.emptystack() queue.en

5、queue(stack.pop(); while(!queue.emptyqueue() stack.push(queue.dequeue(); stack.print(); coutch;2以下程序涉及类模板、友元函数、插入符“”重载函数,补充成员函数、友元函数的定义,实现将顺序表A按元素值奇、偶数拆分成两个表,A表存放奇数,B表存放偶数。/sq_list.h#include#include/定义顺序表类模板template class sq_list private: int mm; /顺序表空间容量 int nn; /顺序表长度 T*L; /指向顺序表向量的指针 public: sq_l

6、ist(int); /构造函数,建立空顺序表 int length(); /成员函数,计算顺序表当前长度 T get(int); /成员函数,读取顺序表中第i个元素 void insert(T,int); /成员函数,在顺序表的第i个元素之前插入一个元素 void del(int); /成员函数,删除顺序表中第i个元素 friend ostream&operator(ostream&,const sq_list&); /声明友元函数,插入符重载为友元函数 friend void separate(sq_list&,sq_list&); /声明友元函数,拆分顺序表;/定义构造函数template

7、sq_list:sq_list(int m) mm=m; L=new Tmm; /动态分配顺序表存储空间 nn=0; /空表,长度为0/定义成员函数/定义友元函数/拆分顺序表.cpp#includesq_list.hvoid main() sq_list A(20),B(20); for(int i=1;i=10;i+) A.insert(i,i); coutA; separate(A,B); coutAB; coutch;3以下程序涉及类模板的派生、抽象类和虚函数,补充成员函数的定义,实现对完全二叉树的DLR、LDR和LRD遍历。/binary_tree.h#include /二叉树结点结构

8、体模板templatestruct btnode T data; /数据域 btnode*lchild, *rchild; /左、右指针域;/二叉树类模板template /抽象类class binary_tree protected: btnode*root; public: binary_tree()root=NULL; /构造函数,初始化二叉链表 void creat_BT(); /建立二叉树 virtual void trav_BT()=0; /说明纯虚函数(遍历二叉树);template /派生类class pretrav:public binary_tree public: voi

9、d trav_BT() /遍历二叉树 btnode*p=root; preorder(p); /先序遍历 coutendl; ;template /派生类class intrav:public binary_tree public: void trav_BT() /遍历二叉树 btnode*p=root; inorder(p); /中序遍历 coutendl; ;template /派生类class postrav:public binary_tree public: void trav_BT() /遍历二叉树 btnode*p=root; postorder(p); /后序遍历 couten

10、dl; ;/定义成员函数(建立二叉树)/定义函数模板template /先序遍历void preorder(btnode*p) if(p!=NULL) coutdata; preorder(p-lchild); preorder(p-rchild); template /中序遍历void inorder(btnode*p) if(p!=NULL) inorder(p-lchild); coutdata; inorder(p-rchild); template /后序遍历void postorder(btnode*p) if(p!=NULL) postorder(p-lchild); posto

11、rder(p-rchild); coutdata; /完全二叉树遍历.cpp#includebinary_tree.hvoid main() binary_tree*p; cout先序遍历:endl; p=new pretrav; p-creat_BT(); p-trav_BT(); cout中序遍历:endl; p=new intrav; p-creat_BT(); p-trav_BT(); cout后序遍历:endl; p=new postrav; p-creat_BT(); p-trav_BT(); coutch;二、大作业的任务与要求选择或部分选择类模板、类模板的派生类、模板函数、虚函数等方法完成专题。 可供选择的题目(也可以自己拟定题目):1. 顺序表的查找2. 顺序表的排序3. 哈夫曼编码、译码 专题作业要求:1. 对问题用文字详细描述;2. 说明所采用的C+语言的具体方法;3. 如果具有类的继承,画出类结构图;4. 程序源代码并且加序言性注释和程序段的功能注释;5. 程序运行结果。

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

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