(
① 算法思路
從一個空表開始
具體方法【 參見動畫演示 】
注意
⒈采用尾插法建表
⒉必須增加一個尾指針r
② 具體算法實現
LinkList CreatListR(void)
{//返回單鏈表的頭指針
char ch;
LinkList head;//頭指針
ListNode *s
head=NULL; //鏈表開始為空
r=NULL;//尾指針初值為空
ch=getchar(); //讀入第
while(ch!=
s=(ListNode *)malloc(sizeof(ListNode));//生成新結點
s
if (head!=NULL)
head=s;//新結點插入空表
else
r
r=s;//尾指針指向新表尾
ch=getchar(); //讀入下一字符
}//endwhile
if (r!=NULL)
r
return head;
}
注意
⒈開始結點插入的特殊處理
由於開始結點的位置是存放在頭指針(指針變量)中
開始結點
⒉空表和非空表的不同處理
若讀入的第一個字符就是結束標志符
From:http://tw.wingwit.com/Article/program/sjjg/201311/23310.html