單向鏈表的「尾插法」能按輸入順序建立節點,配合頭節點與尾指標,實作簡潔高效。本文提供完整 C 代碼,示範建立帶頭節點的循環單向鏈表,並包含遍歷列印功能,於 MSVC 6.0 驗證通過。
#include <stdio.h>
#include <stdlib.h>
#define DATATYPE char
typedef struct Node {
DATATYPE data;
struct Node *next;
} LINKLIST;
// 尾插法建立循環單向鏈表,輸入 "abcd1234" 回車即建立 8 個節點
LINKLIST *RearCreateLinkList() {
LINKLIST *head, *p, *rear;
char ch;
head = (LINKLIST *)malloc(sizeof(LINKLIST));
rear = head;
puts("Please input the linklist's data: ");
ch = getchar();
while (ch != '\n') {
p = (LINKLIST *)malloc(sizeof(LINKLIST));
p->data = ch;
rear->next = p;
rear = p;
ch = getchar();
}
rear->next = head; // 閉合成循環
return rear; // 返回尾指標,便於後續操作
}
// 遍歷列印
void LinkListPrint(LINKLIST *rear) {
LINKLIST *head = rear->next;
LINKLIST *cur;
if (head == rear) {
printf("\n鏈表為空!\n");
return;
}
cur = head->next;
puts("遍歷節點:");
while (cur != head) {
printf("%c ", cur->data);
cur = cur->next;
}
puts("");
getchar(); // 暫停
}
int main() {
LINKLIST *rear = RearCreateLinkList();
LinkListPrint(rear);
return 0;
}

輸入 abcd1234 後,程式依序列印 a b c d 1 2 3 4,驗證尾插法順序正確。