资源描述:
《循环链表c代码含注释级程序图解实现信息管理系统插入,删除,查询,文件读取,存储,有序归并,输出》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、广使用循环双向链表,实现名胜信息管理系统,可实现插入,删除,查询,文件读取,存储,有序归并,输出的功能”/head-length#include#include#includeusingnamespacestd;classCScene〃景点类private:stringname;stringcity;floatticket;friendclassCSceneNode;friendclassCSceneList;friendclassCSceneView;//景点名〃所在城市〃票价〃结点友元类〃链表友元类〃视图友元类public:CS
2、cene():name(',unknownH),city(,,unknown,,),ticket(0){}〃构造函数CScene(CScene&s){name=s.name;city=s.city;ticket=s.ticket;}//拷贝构造函数CScene(stringn,stringc,floatt){name=n;city=c;ticket=t;〃构造函数voidOutputScene(){cout«name«"t"«city«',t,,«ticket«endl;cout«""«endl;}〃输出函数voidlnput()〃输入{coutvv”请依次输入名胜名称,所在城帀,
3、票价”vvendl;cin»name»city»ticket;}classCSceneNode//结点类private:scene;*prior;*next;CSceneList;CSceneView;〃内嵌对象〃指向前驱〃指向后继〃链表友元类〃视图友元类〃构造函数〃构造函数CSceneCSceneNodeCSceneNodefriendclassfriendclasspublic:CSceneNode():next(NULL),prior(NULL),scene(){}CSceneNode(CScenes):next(NULL),prior(NULL),scene(s){}};cla
4、ssCSceneListr〃链表类{private:stringlistname;〃链表名intlength;〃表长CSceneNode*head;〃头指针friendclassCSceneView;〃视图友元类public:CSceneList():listname("未分类M),length(O)〃构造函数head=newCSceneNode;head->prior=head;head->next=head;}〜CSceneList()〃析构函数{CSceneNode*p,*q;for(p=head->next;p!=head;p=q){q=p->next;deletep;}del
5、etehead;head=NULL;}voidOutput()〃输岀全部{cout«n"«endl;cout«listname«H全部景点H«endl;cout«Hn«endl;CSceneNode*p;intj;for(p=head->next,j=1;p!=head;p=p->next,j++){cout«j«"tH«p->scene.namevv”t”vvp・>scene.cityvv”t”vvp・>scene.ticketvvendl;cout«""«endl;}cout«n总数"«length«endl;boollnsertHead(CSceneseene){CScen
6、eNode*pNew=newCSceneNode(scene);〃表头插入,可用任意位習插入函数代替其功能〃川请新结点if(!pNew){coutvv”内存申请失败,插入失败!“vvendl;returnfalse;}pNew->prior=head;pNew->next=head->next;head->next->prior=pNew;head->next=pNew;〃修改新结点〃修改新结点〃修改邻近结点〃修改头结点length++;cout«HlnsertedA.A,,«endl;〃表长加一returntrue;}booIInsertTail(CSceneseene){CScen
7、eNode*pNew=newCSceneNode(scene);〃表尾插入〃申请新结点if(!pNew){cout«"内存中请失败,插入失败!“vvendl;returnfalse;}pNew->next=head;pNew->prior=head->prior;〃修改新结点〃修改新结点head->prior->next=pNew;head->prior=pNew;length++;returntrue;}//修改原末纟占人I〃修改头结点〃表长