建立,删除循环链表中的一个元素
来源:互联网 发布:微型六轴机器人 淘宝 编辑:程序博客网 时间:2024/06/05 04:06
声明循环链表类
class Clink{Clink *head;Clink *next;Clink *p;Clink *p2;Clink *p3;string name;public:Clink(){name="“吴香玉”";}Clink*build();voidshow(Clink *HEAD);Clink*C_delete(Clink *HEAD); };
Clink* Clink::build()//建立循环链表{head=this;p=head;int i=0;while(p->name!="0"){p2=new Clink;p2->name=sentence[i++];p->next=p2;//以上几步与建立单向链表相同p3=p;//保存上一个节点p=p2;//p移向刚建立的节点 }p3->next=head;//将0之前的一个节点的next指向头节点,构成一个圈return head; }
Clink* Clink::C_delete(Clink *HEAD){string sen;p2=HEAD;//p2定位至头节点 p=HEAD->next;//p为p2下一个节点 sen="个";while(p->name!=sen)//找到要删除的节点 {p2=p;//保存p所在节点 p=p->next;//p移动至下一个节点 }p2->next=p->next;//将要删除的节点上一个节点的next,指向要删除的节点的下一个节点if(p==HEAD)return HEAD->next;//如果要删除的是头节点,那么头节点的下一个节点就成了新的头节点 else return HEAD;//如果要删除的不是头节点那么链表的头节点就没有变化 }
void Clink::show(Clink *HEAD){p=HEAD;do{cout<<p->name;p=p->next;}while(p!=HEAD);//因为是循环链表,所以当P第二次到达头节点的时候就不要输出了cout<<endl; }
以上就是循环链表中删除一个元素,本机器觉得写的时候应该把查找那个元素与删除元素分成两个函数写,这样可能好一些
0 0
- 建立,删除循环链表中的一个元素
- 循环链表建立、删除
- 在一个循环中删除一个列表中的元素
- foreach循环中删除一个列表中的元素报错
- 循环删除list中的元素
- 循环删除数组中的元素
- 循环删除list中的元素
- 循环删除List中的元素
- 循环链表的建立,查找,删除
- 删除链表中的一个元素的伪算法解析
- 循环链表list删除元素
- 编写算法实现建立一个带头结点的含n个元素的双向循环链表H,并在链表H中的第i个位置插入一个元素e
- 删除链表中的元素
- 删除链表中的元素
- 删除链表中的元素
- 删除链表中的元素
- 删除链表中的元素
- 删除链表中的元素
- 2个线程向同一数组中加随机数,每个数组加3个数,交替
- URL与URI
- POJ 2762 —— Going from u to v or from v to u? 强连通+拓扑
- TCP协议中的SO_LINGER选项
- implements Runnable synchronized代码块 * 2个线程向同一数组中加随机数,每个数组加3个数,交替
- 建立,删除循环链表中的一个元素
- 牛客网-华为机试在线训练-1.求int型数据在内存中存储时1的个数
- 招聘需求系列之三(加个提示目前还是中级的需求,后期会补高级的需求包括笔试面试题的系列)
- iOS开发之CFNetWork的简单使用
- 笔试题--字符串处理
- Mac OS X 下查看和设置JAVA_HOME
- 接口类
- https请求
- 接收短信