从键盘输入10个数,采用单链表存储,写一个函数,反序输出这十个数

时间:686次浏览2017.09.25提问

从键盘输入10个数,采用单链表存储,写一个函数,反序输出这十个数

已解决问题

hao231知道平台可亲可爱的匿名用户网友在686次浏览2017.09.25提问提了关于IT技术键盘编程相关的问题,他的提问求学习从键盘输入10个数,采用单链表存储,写一个函数,反序输出这十个数IT技术键盘编程希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,希望你能感受到,我最真诚的谢意 !

第1个回答

Midas2017.09.27回答可以使用递归实现。以栈的形式,从最后一次调用函数开始,输出最后一个值,然后依次向前回退输出。以下为示例代码:#include<stdio.h>#include<malloc.h>structnode{intdata;structnode*next;};voidrprint(structnode*head);structnode*createNode(intlen);intmain(){structnode*head;head=createNode(10);//创建一个长度为10的单链表printf("------output:------\n");rprint(head);//逆序输出return0;}//实现逆序输出的函数voidrprint(structnode*head){if(head==NULL){return;}else{rprint(head->next);printf("%d\n",head->data);}}//创建链表,len为链表长度structnode*createNode(intlen){structnode*head=NULL,*p1=NULL,*p2=NULL;inti;head=p1=p2=(structnode*)malloc(sizeof(structnode));for(i=0;i<len;i++){p1=p2;scanf("%d",&(p2->data));p2=(structnode*)malloc(sizeof(structnode));p1->next=p2;}p1->next=NULL;//如果长度为空if(len==0){head=NULL;}returnhead;}测试输出成功: