循环单链表
来源:互联网 发布:mac双系统对电脑好吗 编辑:程序博客网 时间:2024/06/05 12:06
#include<iostream>using namespace std;#include "stdlib.h"template <typename TypeName>class node{public:node(){m_next=NULL;}TypeName m_node;node * m_next;protected:private:};template <typename TypeName>class CircleList{public:CircleList(){m_phead=NULL;m_isize=0;}~CircleList(){if (m_phead==NULL) return;node<TypeName>* p=m_phead;node<TypeName>* q=NULL;int i=0;while (p->m_next!=m_phead){ q=p; p=p->m_next;delete q;std::cout<< "delete" <<++i <<endl;}delete p;cout<< "delete" <<++i <<endl;}void addTail(node<TypeName> element);void inserList(int index,node<TypeName> element);void showList();private:node<TypeName>* m_phead;int m_isize;};//定义参数 返回值 类的实例化 ::成员函数template <typename TypeName>void CircleList<TypeName>::addTail(node<TypeName> element){if (m_phead==NULL){m_phead=new node<TypeName>;m_phead->m_next=m_phead;m_phead->m_node=element.m_node;m_isize=1;}else{node<TypeName>* p=m_phead;node<TypeName>*pAdd=new node<TypeName>;pAdd->m_node=element.m_node;while(p->m_next!=m_phead){p=p->m_next;}p->m_next=pAdd;pAdd->m_next=m_phead;m_isize++;}}//定义参数 返回值 类的实例化 ::成员函数template <typename TypeName>void CircleList<TypeName>::inserList(int index,node<TypeName> element){if(index>=m_isize){cout<<"inster err"<<endl;return;}node<TypeName>* p=m_phead;node<TypeName>* phead2=m_phead;node<TypeName>* pNew=new node<TypeName>();int ipos=0;p=phead2;while (p->m_next!=phead2){if (ipos==index ){pNew->m_node=element.m_node;pNew->m_next=p->m_next;p->m_next=pNew;}ipos++;p=p->m_next;}p->m_next=m_phead;m_isize++;}//定义参数 返回值 类的实例化 ::成员函数template <typename TypeName>void CircleList<TypeName>:: showList(){node<TypeName>* p=m_phead;while(p->m_next!=m_phead){cout<<p->m_node<<", ";p=p->m_next;}cout<<p->m_node;cout<<endl;}void main(){{node<int> as;as.m_node=3;node<int> as1;as1.m_node=4;node<int> as2;as2.m_node=5;node<int> as3;as3.m_node=6;node<int> as4;as4.m_node=7; CircleList<int > awe;awe.addTail(as);awe.addTail(as1);awe.addTail(as2);awe.addTail(as3);awe.showList();}{node<int> as;as.m_node=3;node<int> as1;as1.m_node=4;node<int> as2;as2.m_node=5;node<int> as3;as3.m_node=6;node<int> as4;as4.m_node=7;CircleList<int > awe;awe.addTail(as);awe.addTail(as1);awe.addTail(as2);awe.addTail(as3);awe.addTail(as4);awe.showList();cout<<"*******add finish*********"<<endl;as.m_node=23;awe.inserList(0,as);awe.showList();as.m_node=24;awe.inserList(1,as);awe.showList();as.m_node=25;awe.inserList(2,as);awe.showList();as.m_node=26;awe.inserList(3,as);awe.showList();as.m_node=30;awe.inserList(7,as);awe.showList();}system("pause");}
可以定义头指针也可以定义为指针。 0 0
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表
- 循环单链表-两个循环单链表连接
- 循环单链表的实现
- 循环单链表的建立
- 循环单链表(circular list)
- robots的写法
- Error:Connection timed out: connect. If you are behind an HTTP proxy, please....
- jQuery使用ajaxSubmit()提交表单示例
- [Leetcode] 题目索引(不断更新中)
- ScrollView嵌套ListView冲突问题解决方案
- 循环单链表
- 访问其它项目接口
- Ubuntu软件包格式为deb
- 1059. C语言竞赛(20)
- CentOS 6.8 LDAP服务器的配置
- JavaScript基础(一)之语法、变量、数据类型
- linux 安装JDK
- 【android】Activity的启动模式
- Java中的Atomic包