您的位置:首页 > 其它

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

2013-09-01 19:18 260 查看
上一篇文章主要实现了单链表的基本操作,这篇文章主要讲的是单链表的具体应用

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: