单链表应用——逆序输出单链表中的元素

来源:互联网 发布:java语言培训 编辑:程序博客网 时间:2024/05/26 19:18

上一篇文章主要实现了单链表的基本操作,这篇文章主要讲的是单链表的具体应用

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;elsePrint(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;}}

原创粉丝点击