将一个结点类型为LNode的单链表按逆序链接,编写算法实现,并在main()函数中实现。
答案:1 悬赏:30
解决时间 2021-01-12 19:53
- 提问者网友:愿为果
- 2021-01-12 03:59
将一个结点类型为LNode的单链表按逆序链接,编写算法实现,并在main()函数中实现。
最佳答案
- 二级知识专家网友:慢性怪人
- 2021-01-12 04:28
#include
#include
typedef struct node
{
int data;
struct node *next;
}LinkNode, *LinkList;
LinkList Creat(LinkList head);
void Inverse(LinkList head);
void Output(LinkList head);
LinkList Creat(LinkList head)//建表
{
LinkList p = NULL;
LinkList q = NULL;
head = (LinkList) malloc (sizeof(LinkNode));
head->next = NULL;
q = head;
while (1)
{
p = (LinkList) malloc (sizeof(LinkNode));
p->next = NULL;
scanf("%d", &p->data);
if (0 == p->data)//输入0表示结束输入
{
free(p);
break;
}
q->next = p;
q = p;
}
return head;
}
void Inverse(LinkList head)//逆置
{
LinkList p = head->next;
LinkList tmp = NULL;
head->next = NULL;
while (NULL != p)
{
tmp = p->next;
p->next = head->next;
head->next = p;
p = tmp;
}
}
void Output(LinkList head)//输出
{
LinkList p = head->next;
while (NULL != p)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main(void)
{
LinkList head = NULL;
head = Creat(head);
Output(head);
Inverse(head);
Output(head);
return 0;
}
#include
typedef struct node
{
int data;
struct node *next;
}LinkNode, *LinkList;
LinkList Creat(LinkList head);
void Inverse(LinkList head);
void Output(LinkList head);
LinkList Creat(LinkList head)//建表
{
LinkList p = NULL;
LinkList q = NULL;
head = (LinkList) malloc (sizeof(LinkNode));
head->next = NULL;
q = head;
while (1)
{
p = (LinkList) malloc (sizeof(LinkNode));
p->next = NULL;
scanf("%d", &p->data);
if (0 == p->data)//输入0表示结束输入
{
free(p);
break;
}
q->next = p;
q = p;
}
return head;
}
void Inverse(LinkList head)//逆置
{
LinkList p = head->next;
LinkList tmp = NULL;
head->next = NULL;
while (NULL != p)
{
tmp = p->next;
p->next = head->next;
head->next = p;
p = tmp;
}
}
void Output(LinkList head)//输出
{
LinkList p = head->next;
while (NULL != p)
{
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main(void)
{
LinkList head = NULL;
head = Creat(head);
Output(head);
Inverse(head);
Output(head);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息