数据结构问题...
将一个结点类型LNODE的单链表按逆序链接,即若原单链表中存储元素的次序为a1,a2,...an-1,an则逆序链接后变为an,an-1,...,a2,a1.编写算法实现...
将一个结点类型LNODE的单链表按逆序链接,即若原单链表中存储元素的次序为a1,a2,...an-1,an则逆序链接后变为an,an-1,...,a2,a1.编写算法实现,并在main()函数中进行调用验证
展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
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 <stdlib.h>
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;
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询