单向循环链表就地逆置
来源:互联网 发布:深圳市咫尺网络 编辑:程序博客网 时间:2024/05/01 19:06
原来自己想过一个思路,后来发现完全是不正确的。
看来最后还是得在网上查找算法,最后才实现了。
(1)当链表为空表或只有一个结点时,该链表的逆置链表与原表相同。
(2)当链表含2个以上结点时,可将该链表处理成只含第一结点的带头结点链表和一个无头结点的包含该链表剩余结点的链表。然后,将该无头结点链表中的所有结点顺着链表指针,由前往后将每个结点依次从无头结点链表中摘下,作为第一个结点插入到带头结点链表中。这样就可以得到逆置的链表
具体实现起来就不是那么困难了,在纸上面画画就出来了~~~
#include <iostream>#include <malloc.h>#define OK 1#define ERROR 0#define LENGTH 10typedef int ElemType;typedef int Status;typedef struct LNode{ElemType data;struct LNode* next;}LNode, *LinkList;//创建链表Status CreateList(LinkList &L){LinkList s = NULL;int i = 0;L = (LinkList)malloc(sizeof(LNode) * LENGTH);L->next = NULL;L->data = 0;for (i = 1; i <= LENGTH; i++){s = (LinkList)malloc(sizeof(LNode));s->data = 10 - i + 1;s->next = L->next;L->next = s;}return OK;}//链表逆置Status InverseList(LinkList &L){LinkList p = NULL;LinkList q = NULL;//传入的L是头节点if (L && L->next )//保证至少含有两个节点以上{//创建两个临时变量p = L->next;q = p->next;p->next = NULL;}//将除了头节点和第一个节点之外的多余节点遍历并将每个节点摘出来放到头节点的后面while (q){p = q;q = q->next;p->next = L->next;L->next = p;}return OK;}//打印链表Status PrintfList(LinkList L){int i = 0;if (L == NULL)std::cout<<"该链表是空表"<<std::endl;while(L->next != NULL){std::cout<<"第"<<i<<"个节点的数值:"<<L->data<<std::endl;L = L->next;i++;}std::cout<<"第"<<i<<"个节点的数值:"<<L->data<<std::endl;std::cout<<std::endl;return OK;}//删除链表Status DeleteList(LinkList &L){LinkList p = NULL;while (L->next){p = L->next;L->next = p->next;free(p);}return OK;}int main(){LinkList L = NULL;//创建链表,长度为10个长度CreateList(L);//打印链表PrintfList(L);//链表逆置InverseList(L);//重新打印链表PrintfList(L);//删除链表DeleteList(L);//删除链表之后打印链表PrintfList(L);return 0;}
- 单向循环链表就地逆置
- 单向不循环链表就地转置算法
- 双向循环链表(插入,删除,就地逆置)
- 链表就地逆置
- 链表就地逆置
- 链表就地逆置
- 链表就地逆置
- 链表的就地逆置
- 24. 链表就地逆置
- 链表就地逆置和合并
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 循环单向链表
- 单向循环链表
- 循环单向链表
- 单向链表循环
- 全球舆论掀起莫言热:西方承认中国软实力增长-文学奖-莫言-诺贝尔奖
- prototype
- 纯CSS的下拉菜单
- C# 字符串换行、字符串像素高度、宽度 的结构
- DWR总结
- 单向循环链表就地逆置
- mobile agent 学习
- Windows 7怎样更改DVD驱动器盘符?
- Tab组件和其他组件结合使用(含ListView)
- C++ 的变量书写规则探讨
- Python os.path模块
- 安卓nba2k13数据包该放那个目录下
- 媒体称天然气价改方案递交国务院 实行一省一价-天然气-价格
- 分布式系统