单链表应用——逆序输出单链表中的元素
2013-09-01 19:18
260 查看
上一篇文章主要实现了单链表的基本操作,这篇文章主要讲的是单链表的具体应用
1.单链表的逆序输出(mylist.h)
2. 单链表的倒置
void ReversedList(List L)
{
Position P, TmpCell;
assert(L != NULL);
P = L->Next;
L->Next = NULL;
while(P)
{
TmpCell = P->Next;
P->Next = L->Next;
L->Next = P;
P = TmpCell;
}
}
1.单链表的逆序输出(mylist.h)
#include <stdio.h> #include <stdlib.h> #include <assert.h> #include "mylist.h" void PrintList(List L) { Position P = L; assert(L != NULL); if(IsEmpty(L)) { printf("List empty\n"); } else { do { P = Next(P); printf("%3d", Retrieve(P)); }while(!IsLast(P)); putchar('\n'); } } void Print(Position P) { if(P == NULL) return; else Print(Next(P)); printf("%3d", Retrieve(P)); } void ReversedPrint(List L) { Position P = First(L); Print(P); } int main(void) { Position P; List L; int i; MakeEmpty(&L); P = L; for(i = 0; i < 5; ++i) { Insert(i, P); P = Next(P); } PrintList(L); ReversedPrint(L); system("Pause"); return 0; }
2. 单链表的倒置
void ReversedList(List L)
{
Position P, TmpCell;
assert(L != NULL);
P = L->Next;
L->Next = NULL;
while(P)
{
TmpCell = P->Next;
P->Next = L->Next;
L->Next = P;
P = TmpCell;
}
}
相关文章推荐
- 链表元素的逆序输出
- 单链表应用举例(单链表A和单链表B的元素都是非递减排列,利用单链表的基本运算,将它们合并成一个单链表C,要求C也是非递减序列)
- 单链表的创建(头插尾插),表长,输出,插入,删除,查找,逆置,分解长两个链表(奇数偶数链表),查找倒数第k个元素,产出相同元素
- 逆序输出链表的元素
- 单链表的应用3(链表排序输出)
- 逆序输出链表元素
- 浅谈链表 栈 队列 及链表的逆序输出应用
- 线性表(二)——单链表(3)——单链表应用举例(2)—— 删除元素最大的节点
- C语言 将链表中的元素在同一个链表中逆序输出
- 合并单链表,输出单链表中间元素,判断是否有环等
- 单链表应用举例(利用单链表的基本运算,实现如果在A单链表中出现的元素在B单链表中也出现,则将A中的元素删除)
- 单向链表逆序输出
- [Jobdu] 题目1511:从尾到头打印链表——单链表的倒置输出
- 单链表的逆序输出及就地逆置
- 输出链表倒数第k个元素
- 单链表逆序输出C++ (stack方法、双向链表方法以及vector方法)
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环
- 链表——逆序输出
- 每天一算法(输出链表倒数第k个元素)
- 链表知识点(八)【单链表的输出中间值】