数据结构 单链表的就地转置
来源:互联网 发布:网络服务费增值税税率 编辑:程序博客网 时间:2024/04/28 21:56
#include <stdio.h>#include <stdlib.h>#include <iostream.h>#define OVERFLOW -2typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode, *LinkList;void CreateList_L(LinkList &L, int n){int i;LinkList p,q;L = (LinkList) malloc (sizeof(LNode));if (!L){exit(OVERFLOW);}p = L;for (i=0; i<n; i++){q = (LinkList) malloc (sizeof(LNode));if (!q){exit(OVERFLOW);}scanf("%d",&q->data);p->next = q;p = q;}p->next = NULL;}void Display(LinkList L){LinkList p = L->next;while (p != NULL){printf("%d ",p->data);p = p->next;}printf("\n");}void reverseList(LinkList &L){/*单链表的就地转置,L->1->2->3->4->5->NULL变成L->5->4->3->3->1->NULL 设置两个指针p,q,p = L->next, q = L->next,q = q->next,将第一个元素的后继变为空 p->next = NULL,然后p = q; */ LinkList p = L->next,q = L->next;q = q->next;//q指向第二个元素p->next = NULL;//第一个元素变成最后一个元素p = q;//处理后面的元素while (p != NULL){q = q->next;p->next = L->next;L->next = p;p = q;}}int main(){int n;LinkList L;printf("请输入您要创建单链表的元素的个数:");scanf("%d",&n);CreateList_L(L,n);Display(L);reverseList(L);Display(L);return 0;}
0 0
- 数据结构 单链表的就地转置
- 数据结构:单链表就地逆置
- 【学习点滴-数据结构-单链表】单链表的就地逆置
- 数据结构——单链表的就地逆置
- 实战数据结构(8)_单链表的就地逆置
- PTA(数据结构)-带头结点的单链表就地逆置
- 单链表的就地逆置.
- 单链表的就地逆置
- 单链表的就地逆置
- 单链表的就地逆置
- 单链表的就地逆置
- 单链表的就地逆置
- 实战数据结构(10)_单链表的就地排序
- 单链表的就地逆转 -- 浙大《数据结构》第二版 例2.4
- 单链表就地逆置的高效算法
- 带头结点的单链表就地逆置
- 单链表的建立与就地逆置
- 实现单链表的就地逆置算法
- UI小练习,模仿登陆界面
- 单例模式
- 移动开发者的自学宝典:十大在线编程学习网站
- WCF服务IIS寄宿
- JMail的SSL以及非SSL发送邮件
- 数据结构 单链表的就地转置
- Substring with Concatenation of All Words
- SQL语句(创建书库,创建建表,写入注释,获取注释)
- 读《富爸爸穷爸爸》有感
- 数据结构 静态链表的建立
- fedora 19 安装中文语言包
- 数据结构 静态链表的插入与删除
- C#中的异步调用及异步设计模式(一)
- java.util.ConcurrentModificationException解决办法