键盘输入一组数字,用单链表形式存储,输入完成后分别按顺序和逆序输出所输入数字。

2025-03-31 12:23:52
推荐回答(1个)
回答1:

楼主你好
具体代码如下:
#include
#include
#define MAX 80

typedef struct node
{
int data;
struct node *next;
}N;

N *head=(N *)malloc(sizeof(N));//创建头结点

void Creat()
{
N *p;//用于插入新节点
N *r=head;//尾指针 开始指向头结点

printf("请输入任意个数据(用回车结束输入、空格间隔:1 2 3……)\n:");
do{
p=(N *)malloc(sizeof(N));
scanf("%d",&p->data);
r->next=p;
r=p;
}while(getchar()!='\n');

r->next=NULL;
}

void Disp()//实现顺序输出和逆序输出
{
N *p=head->next;//用于遍历单链表
int a[MAX];
int i=0,j;

printf("顺序输出:\n");
while(p)
{
printf("%d ",p->data);
a[i]=p->data;
p=p->next;
i++;
}
printf("\n逆序输出:\n");
for(j=i-1;j>=0;j--)
printf("%d ",a[j]);
printf("\n");
}
void main()
{
Creat();
Disp();
}

希望能帮助你哈