求C语言题目(要具体的程序!) 建立一个链表,将数据放入链表,先输出链表,再将链表逆序
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int num;
node* next;
}node,*link;
void creat(link &head)
{
link p,q;
head=new node[sizeof(node)];
q=head;
int i=1;
do
{
p=new node[sizeof(node)];
printf("请输入第%d个数:",i++); //结束标记为0
scanf("%d",&p->num);
if(p->num!=0)
{
q->next=p;
q=p;
}
}while(p->num!=0);
q->next=NULL;
}
void reserve(link &head)
{
if(head->next ==NULL)
return;
link pre, cur, ne;
pre=head->next;
cur=head->next;
while(cur)
{
ne = cur->next;
cur->next = pre;
pre = cur;
cur = ne;
}
head->next->next = NULL;
head->next = pre;
}
void show(link head)
{
link p=head->next;
while (p)
{
printf("%d ",p->num);
p=p->next;
}
printf("\n");
}
void main()
{
link head=NULL,p;
int i;
creat(head);
show(head);
printf("链表逆序:");
reserve(head);
show(head);
}
#include <stdlib.h>
typedef struct node
{
int num;
node* next;
}node,*link;
void creat(link &head)
{
link p,q;
head=new node[sizeof(node)];
q=head;
int i=1;
do
{
p=new node[sizeof(node)];
printf("请输入第%d个数:",i++); //结束标记为0
scanf("%d",&p->num);
if(p->num!=0)
{
q->next=p;
q=p;
}
}while(p->num!=0);
q->next=NULL;
}
void reserve(link &head)
{
if(head->next ==NULL)
return;
link pre, cur, ne;
pre=head->next;
cur=head->next;
while(cur)
{
ne = cur->next;
cur->next = pre;
pre = cur;
cur = ne;
}
head->next->next = NULL;
head->next = pre;
}
void show(link head)
{
link p=head->next;
while (p)
{
printf("%d ",p->num);
p=p->next;
}
printf("\n");
}
void main()
{
link head=NULL,p;
int i;
creat(head);
show(head);
printf("链表逆序:");
reserve(head);
show(head);
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询