#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct LNode {
int elem;
struct LNode* next;
}LNode, *linklist;
void LNode_create(linklist& L,int N)//创建链表
{
int n;
linklist Lhead, Lend;
Lhead = NULL;
Lend = NULL;
printf("请输入该数组\n");
for (int i = 0; i < N; i++)
{
scanf_s("%d", &n);
L = (linklist)malloc(sizeof(LNode));
L->elem = n;
L->next = NULL;
if (Lhead == NULL)
{
Lhead = L;
Lend = L;
}
else
{
Lend->next = L;
Lend = L;
}
}
L = Lhead;
}
void Reverse_L(linklist& L,int N)//逆置链表
{
int i, j,t;
linklist p;
p = L;
for (i = 0; i < N-1; i++)
{
for (j = 0; j < N - 1 - i; j++)
{
t = p->elem;
p->elem = p->next->elem;
p->next->elem = t;
p = p->next;
}
p = L;
}
}
void display(linklist L)//输出链表
{
while (L)
{
printf("%d ", L->elem);
L = L->next;
}
}
int main()
{
int N;
linklist L;
printf("请输入你要输入数组的元素个数;\n");
scanf_s("%d", &N);
LNode_create(L,N);
Reverse_L(L,N);
display(L);
return 0;
}
算法四_C语言:逆置动态单链表L。
最新推荐文章于 2024-05-08 11:16:23 发布