您的位置:首页 > 编程语言 > C语言/C++

逆序输出链表

2013-09-05 16:59 232 查看
#include<iostream>using namespace std;
//构造单向链表typedef struct Lis{char ele;int n;Lis *next;}Lis;Lis* createLis(int n){Lis *head=NULL;Lis *p=NULL,*pre=NULL;int i=0;head=(Lis *)malloc(sizeof(Lis));pre=head;head->next=NULL;for(i=0;i<n;i++){p=(Lis *)malloc(sizeof(Lis));cout<<"input the ele"<<endl;cin>>p->ele;cout<<"enter the n"<<endl;cin>>p->n;pre->next=p;pre=p;}p->next=NULL;return head;}void NiOut(Lis *h){Lis *p=h->next;if(p!=NULL){NiOut(p);cout<<p->ele<<" ";//这里的输出是回代过程,写到递归函数调用之后,否则会正序输出}if(p->next==NULL)return;}void outLis(Lis *h){Lis *p=NULL;p=h->next;while(p){cout<<p->ele<<"\t"<<p->n<<endl;p=p->next;}}int main(){Lis *head=NULL;int n=0;cout<<"Input the number :"<<endl;cin>>n;head=createLis(n);outLis(head);NiOut(head);return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 递归