1. 程式人生 > >用c語言實現單鏈表的逆序輸出

用c語言實現單鏈表的逆序輸出


 
<span style="font-family: Arial, Helvetica, sans-serif;">可以用遞迴,如果沒到連結串列尾,則遞迴查詢,否則輸出當前值。下面只是演算法表示,不能直接放到程式裡編譯執行。</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>

 

 
int outlink(node *p)
{
    if(p->next!=null)
        outlink(p->next);
   printf(p->data);
   return 0;
}
以下為程式碼實現:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<malloc.h>
struct String{ //字串結構體
 char c;
 struct String *next;
};
void iniString(struct String *str){ //字串初始化
 struct String *p1,*p2;
 p1=str;
 scanf("%c",&(p1->c));
 while(p1->c!='\n'){
  p2=(struct String *)malloc(sizeof(struct String *));
  scanf("%c",&(p2->c));
  p1->next=p2;
  p1=p1->next;
 }
 p1->next=NULL;
}
void strPrint(struct String *str){ //字串連結串列逆序輸出
 struct String *s=str;
 if(s->next!=NULL)
 {
  strPrint(s->next);
  printf("%c",s->c);
 }else
 {
  printf("%c",s->c);
 }
}
int main(){
 printf("請輸入字串(回車結束輸入):");
 struct String str1;
 struct String *pstr1;
 pstr1=&str1;
 iniString(pstr1);
 strPrint(pstr1);
 system("pause");
 return 0;
}
http://zhidao.baidu.com/link?url=ixHSZqmxacDynyM8kT9ERRALx_NX3uqm6OwAnd0Fydnb9eLjlchSsFtpuHY999P1P48q3oBldWkpqD7qHNBko_