一、后插法建立单链表
每次将新结点加在链表的表尾;
设置一个尾指针 r,总是指向表中最后一个结点,新结点插在它的后面;
尾指针 r 初始时置为指向表头结点地址。
二、操作
LinkList createListR ( void ) {
char ch;
LinkList head = //建立表头结点
(LinkList) malloc (sizeof (ListNode));
ListNode *s, *r = head; // r指向表尾
while ( (ch = getchar( ) ) != ‘\n’ ) {
s = (listNode *) malloc (sizeof(ListNode));
s->data = ch; //建立新结点
r ->link = s; r = s; //插入到表末端
}
r ->link = NULL; //表收尾
return head;}
三、单链表清空
void makeEmpty ( LinkList first ) {
//删去链表中除表头结点外的所有其他结点
ListNode *q;
while ( first->link != NULL ) {
q = first->link; first->link = q->link;
//将表头结点后第一个结点从链中摘下
free( q ); //释放它
}
}