欢迎来到天天文库
浏览记录
ID:26656592
大小:515.35 KB
页数:90页
时间:2018-11-28
《单链表循环链表多项式及其相加双向链表稀疏矩阵》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单链表循环链表多项式及其相加双向链表稀疏矩阵第三章链表一、单链表线性表的链式表示顺序表的优点是可以随机选取表中元素缺点是插入删除操作复杂。用指针将互不相连的内存结点串成的线性表叫线性链表。结点node由一个数据元素域,一个或几个指针域组成。单链表的结点只有一个指针域。几个结点,前一个结点的指针,指向后一个结点,就连接成一个线性链表。线性链表的优点则是插入,删除快捷,缺点是选取复杂。#includetemplateclassNod
2、e{Node*next;//next是下一个结点的地址public:Tdata;//thedataispublicNode(constT&item,Node*ptrnext=NULL);//listmodificationmethodsvoidInsertAfter(Node*p);Node*DeleteAfter(void);//obtaintheaddressofthenextnodeNode*NextNode(void)const;};1.结点类的定义//constr
3、uctor.initializedataand//pointermemberstemplateNode::Node(constT&item,Node*ptrnext):data(item),next(ptrnext)){}//returnvalueofprivatemembernexttemplateNode*Node::NextNode(void)const{returnnext;}//insertanodepafterthecurrenton
4、etemplatevoidNode::InsertAfter(Node*p){//ppointstosuccessorofthecurrent//node,andcurrentnodepointstop.p->next=next;next=p;}//deletethenodefollowingcurrentandreturnitsaddresstemplateNode*Node::DeleteAfter(void){//saveaddressofn
5、odetobedeletedNode*tempPtr=next;//ifthereisn'tasuccessor,returnNULLif(next==NULL)returnNULL;//currentnodepointstosuccessoroftempPtr.next=tempPtr->next;//returnthepointertotheunlinkednodereturntempPtr;}2.人工建立一个链表voidmain(void){Node*a,*b,*c;a=newN
6、ode('a');b=newNode('b');c=newNode('c');Node*head,*p;head=newNode('');p=head;head->InsertAfter(a);head->InsertAfter(b);head->InsertAfter(c);while(p!=NULL){cout<data<<"";p=p->NextNode();}}测试结果:打印cba3.定义线性链表的一些操作#include"no
7、de.h"//allocateanodewithdatamemberitemandpointernextPtrtemplateNode*GetNode(constT&item,Node*nextPtr=NULL){Node*newNode;//allocatememorywhilepassingitemandNextPtrto//constructor.terminateprogramifallocationfailsnewNode=newNode(item,ne
8、xtPtr);if(newNode==NULL){cerr<<"Memoryallocationfailure!"<//printalinkedlistvoidPrintList(Node*head,AppendNewlineaddnl=noNewline){//c
此文档下载收益归作者所有