/*********定义一个链表结点*********/
typedef struct node
{
int data; // 结点的数据域
struct node *next; // 结点的指针域
}linklist;
linklist *CreateLinklistRear()
{
int x, i;
linklist *head, *rear, *temp;
head = (linklist *)malloc(sizeof(linklist)); // 生成表头结点,表头结点不存放数据
head->next = NULL; // 将表头结点的指针域赋值为NULL
rear = head; // 将表头结点赋值给表尾结点
printf("请输入链表中结点的个数:");
scanf("%d", &nodeNum);
for(i=1; i<=nodeNum; i++) // nodeNum为结点个数
{
printf("请输入第 %d 个结点的数据:", i);
scanf("%d", &x);
temp = (linklist *)malloc(sizeof(linklist)); // 生成新的结点
temp->data = x; // 新增结点的数据域
temp->next = NULL; // 新增结点的指针域(由于是尾插法,所以插入的结点都在尾部,即指针域为NULL)
rear->next = temp; // 使前一个结点指向新增结点
rear = temp; // 将新增结点赋值给尾结点(尾插法,插入的结点在尾部)
}
rear->next = NULL; // 将尾结点的指针域赋值为空(为了方便检验链表是否为空链表)
return head; // 返回头结点
}