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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

群体类和群体数据.docx

1、群体类和群体数据 面向对象得程序设计实验报告(题 目:群体类与群体数据学生姓名: 学 院:理学院系 别:数学系专 业:信息与计算科学班 级:任课教师: 二一一年 十 一月1、实验目得1、了解节点类得声明与实现,学习其使用方法2、了解链表类得声明与实现,学习其使用方法3、了解栈类得声明与实现,学习其使用方法4、了解队列类得声明与实现,学习其使用方法5、掌握对数组元素排序得方法6、掌握对数组元素查找得方法2、实验内容1.、编写程序Node、h实现例9-5得节点类,并编写测试程序ab9_1、cpp,实现链表得基本操作、编写程序l、h实现例96得链表类,在测试程序lab2、cp中声明两个整型链表A与B

2、,分别插入5元素,然后把中得元素加入A得尾部3、编写程序quee.h,用链表实现队列(或栈),在测试程序lab_3.c中声明一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来、4、将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章得数组类中,作为成员函数,实现并测试这个类。3、实验程序及结果1.程序一/9_5。#ifndef NDE_LSS#deinNODCLASS/类定义部分templatcass class oe ivate: NodeT*next; /指向后继节点得指针 public: T daa; /数据域 / 构造函数 ode(cnst T

3、, NodeT ptnext = NLL); / 在本节点之后插入一个同类节点 voidnsertAfter(dT *p); / 删除本节点得后继节点,并返回其地址 NodeT eeeAter(voi); / 获取后继节点得地址 Nde:oe(cons T item,NooT N:NxNoe(voi) onst retun next; / 在当前节点之后插入一个节点p tepate:nsrtAfter(NdeT *p) pnx = net; /p节点指针域指向当前节点得后继节点 ext = p; /当前节点得指针域指向p / 删除当前节点得后继节点,并返回其地址tmlate odeT *NT:

4、DlteAfter(oid)NodT temPtr = next; /将欲删除得节点地址存储到tempPt中 i (net = L) /如果当前节点没有后继节点,则返回NULL rurNUL; ext = temPt-t; /使当前节点得指针域指向temptr得后继节点 retur empPt; 返回被删除得节点得地址#endif/ NODE_CA/Nde.h#ifndef NDE_LIRARY#dfine O_LBRARY#includostrem#incde csdlbinclude9、usg namesace std;/ 生成结点:创建一个结点,数据成员值为it,指向后继结点得指针值为n

5、exPtrtemplate NodeT *GetNod(const T, NeT *nextPt =NULL) oe *ewNode; / 为新结点分配内存空间,然后将itm与NxPtr传递给构造函数 newde =w NodeT(itm,nextPtr); if (ewNde= ULL) /如果分配内存失败,程序中止 cer ”Meoy locaion ire! cuP = hed; / 输出结点数据,直到链表结束 hie(currt != NLL) / 如果换行标志dd=addNwline,则输出换行符 if(addnl = addNwe) out data en; ele ct curP

6、trt ; /使crrP指向下一个结点 curPtr = curPtr-Nextd(); /查找结点/在指针had所指向得链表中查找数据域等于it得结点/找到则返回TRUE及其前趋结点得地址,否则返回ALSEteplitFin(NodT hed,&ite, odeT prPtr)Neoid InsertFont(NodeT* had, T item) 建立新结点,使其指针域指向原链表头结点head,然后更新ed hea = GeNoe(im,hea);/在表尾添加结点tmpte Insertter(neNode); / 删除链表得第一个结点templatvod eleteront(NodeT*

7、 & ed) NodeTp =hed; /取得将被删除得结点得地址 if (hea != NUL) / 确认链表不空 head= he-etod(); / 将表头指针hd移向第二个结点 dleep; 删除原第一个结点 / 删除链表中第一个数据域等于ey得结点teplte &had,T key) /crPtr用于遍历链表,pret跟随其后 Nodedata != ey) / crrPtr前行,prePtr跟随其后 prevPtr= crrt; curPtr =urrPrNxtoe(); /若 urrPtr != NULL,则currPt指向得结点数据域为y if(curPtr ! NU) f(p

8、evtr = L) /找到得就是链表第一个结点 ead = head-NextNde(); else 如果找到得就是第二个以后得结点,调用前趋结点得成员函数删除之 ptr-elteAftr(); dlee urPtr; 释放被删除得结点所占得内存空间 / 在有序链表中插入一个结点teplat cass Tvoid Inserrde(NodeT*& hea, T item) / curPt用于遍历链表,pevPtr跟随其后 Nded) rea; / crrPr前行,revPtr跟随其后 prevPtr = currtr; urPr =currrNetNoe(); / 完成插入 if (prevP

9、tr =NLL) /如果插入点在表头 InsertFront(had,iem); ele /在prevPtr指向得结点之后插入新结点 nwNoe = GetNode(iem); prePtInetAfte(nwe); /清空链表删除链表中得所有结点emlate class Toid CerLst(NodeT * head) Nd *currPr,*nxPtr; /边遍历边删除结点 rrPtr head; whe(currPt != NULL) / 记录下一个结点得地址,删除当前结点 etPr = curPr-NtNod(); delete currr; urPtr nextPtr; /使指针u

10、rrPtr指向下一个结点 hea NULL; /将头结点置为NLL,标志着链表为空edf / NODELIBRY/la9。p#inclde otre#incde95。h#inlud od、huing amespace std;it main() / 将表头指针置为UL eite; Insertnt(ed, item); /输出链表 cot Li:; PintLst(head,oNewlne); out endl; / 输入需要删除得整数 cout e; / 查找并删除结点 prevr head; while (Fnd(hed,key,prevPt)!= NULL) f(pevt= NULL)

11、/找到得就是链表第一个结点 ead= head-Nextoe(); else / 如果找到得就是第二个以后得结点,调用前趋结点得成员函数删除之 eltr=prevPteltefe(); elete deltr; / 输出链表 ou is: ; PrintList(he,oNwine); cout endl; /清空链表 laList(hed);实验结果如下:2程序二/a9_2.cppincludlink、hit mai() Linkeistint A, ; fo(int i=0;i5;+) A.Inerta(i1); B.nsetRr(2*i+2); A、Ree();cou 链表A得元素为:”

12、;while(!、ndOfList() cout A、Data() ” ; .xt(); cou endl; B。Reet();ot ”链表B得元素为:;while(!B。nOfLst() cout 。ata() ” ;B、Nxt(); cou e; cou 把B中得元素插入A中、” edl;、ese(); wile(!B。EOfList() A、nerRer(B、Data();B.ex(); A。ese();out 此时,链表A得元素为:” ; whie(!A、EdOfi() cut、at() ”; A。Nxt(); outendl;lik、ifnef INKEDLITCLSSdefieIN

13、EDISTCLASicl *fro, rer; /记录表当前遍历位置得指针,由插入与删除操作更新 NoeT prevt, *urPr; / 表中得元素个数 nt sz; / 当前元素在表中得位置序号。由函数Ree使用 intsitin; /函数成员: / 生成新节点,数据域为item,指针域为prNext NodTtNod(cost T iem,Node *pex=UL); /释放节点 oi FreNoe(Ndep); /将链表L拷贝到当前表(假设当前表为空)。 / 被拷贝构造函数、eraor=调用 voi opyLis(cns Likdist ); pubi: 构造函数 LikedList(

14、void); inkedList(const LindLis L); /拷贝构造函数 / 析构函数 Lines(void); /重载赋值运算符 LinkdLisT& oerator= (consLnkedLst L); / 检查表得状态 nt LisSize(void) ns; /返回链表中元素个数(sie) nt isEmty(vi) cost; /size等于0时返回TRUE,否则返回ASE / 遍历表得函数 void Rst( os = 0); /将指针urrPr移动到序号为os得节点,prevPr相应移动 / positi记录当前节点得序号 voi Next(oi); /使pevPt与

15、urrPt移动到下一个节点 nt EnOLis(vod) cnst; /urrPtr等于NUL时返回TRUE,否则返回FALE int CuntPoition(voi) ont; /返回数据成员poition 插入节点得函数:插入一个数据域为te得节点 vod InsertFrot(nst T item); /在表头插入 voi Insertar(ns& iem); /在表尾添加 voidInsertt(cnst& ite); /在当前节点之前插入 void Inertter(ons item); /在当前节点之后插入 / 删除节点,释放节点空间,更新pvPtr、currPr与size T D

16、eleFrn(voi); /删除头节点 vo eteAt(voi); /删除当前节点 / 返回对当前节点成员data得引用(使数据域可以被使用或修改) Data(o); / 清空链表:释放所有节点得内存空间。被析构函数、oratr= 调用 vodlrList(void);templas TodeT *LindList:GetNod(consT item, NodeT* Nex) NodeT p; p = eode(im,ptet); if (p = NU) cout p) delte p;/将L复制到当前链表empte classTvoid Lnedist:opyList(onstinkedL

17、istT) /用来遍历L NodeT* L、frot; int pos; /将中得每一个元素插入到当前链表最后 whle (p != UL) Inserter(-aa); p NexNode(); /如果链表空,返回 i(ositon= 1) etur; /在新链表中重新设置prvPtr与currPr prer = NULL; curPtr = fr; or (pos = 0; po != psitio; ps) vt crrPtr; urrPt = PtNxtNode(); /建立一个新链表,即:将有关指针设置为空,size为0,otn为-1eplt :Linked(void):frot(ULL), ear(NL), pvPr(N),currPr(NULL),ize(0), positin(-1)templae class LinedLst:Likedist(const LinedListT L) ront = rar = L; prevPtr currPt=NULL; sie= 0; positin=1; Cpyist(L);tmplate ls Tid

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

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