思路如下:先建立一個尾節點,然後從每次插入時新建一個新節點。這個最好自己畫個圖,就明白這些操作時咋來了:畫吧少年,畫完你就明白了
看代碼:
//從後往前向鏈表中插入元素
#include <stdio.h>
#include <stdlib.h>
//定義鏈表結構
struct list
{
int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
int main()
{
link head; //頭指針
link tail; //尾指針
link ptr; //當前指針
int i,num; //下標與元素值
//初始化鏈表 這裏是一個只含有尾指針的鏈表
tail = (link)malloc(sizeof(node));
tail->next = NULL;
ptr = tail; //當前指針先指向尾指針
//向鏈表中插入元素
printf("Input 5 numbers:\n");
for (i = 0; i < 5; ++i)
{
scanf("%d", &num);
ptr->data = num; //當前節點data賦值
head = (link)malloc(sizeof(node)); //開闢一個頭結點
head->next = ptr; //頭結點指向當前節點
ptr = head; //當前指針指向頭結點
}
ptr = ptr->next; //跳過頭結點輸出
//輸出鏈表
while (ptr != NULL)
{
printf("%d\n", ptr->data);
ptr = ptr->next;
}
return 0;
}