用c語言實現單鏈表的逆序輸出
阿新 • • 發佈:2018-10-31
<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; }
以下為程式碼實現:
http://zhidao.baidu.com/link?url=ixHSZqmxacDynyM8kT9ERRALx_NX3uqm6OwAnd0Fydnb9eLjlchSsFtpuHY999P1P48q3oBldWkpqD7qHNBko_#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; }