/*
* 单链表的就地逆置
* */
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
void IniteList(LinkList &list);
void InsertList(LinkList &list, int e);
void Traverse(LinkList &list);
void Reverse(LinkList &list);
int main()
{
LinkList a;
int m;
IniteList(a);
printf("请输入链表a中元素的个数:");
scanf("%d",&m);
printf("\n请逐个输入链表a中的元素:");
for (int i = 0; i < m; ++i)
{
int e;
scanf("%d",&e);
InsertList(a,e);
}
printf("\n链表a中的元素分别为:");
Traverse(a);
Reverse(a);
printf("\n反转之后的链表a为:");
Traverse(a);
}
void IniteList(LinkList &list)
{
list = (LinkList)malloc(sizeof(LNode));
if(!list)
{
printf("OVERFLOW");
return ;
}
list->next = NULL;
}
void InsertList(LinkList &list,int
C语言:单链表的就地逆置
最新推荐文章于 2023-04-14 19:54:38 发布