#include <stdio.h>
#include <stdlib.h>
#define OK 0
#define ERROR -1
#define MALLOC_ERROR -2
typedef int ElementType;
typedef struct node
{
ElementType data; // 结点的数据
struct node *next; // 结点指针
}Node;
typedef Node *PNode; // 重命名结点指针类型
int Create_List_Tail(PNode *h, ElementType data)
{
PNode node = (PNode)malloc(sizeof(Node)/sizeof(char));
if (node == NULL)
{
return MALLOC_ERROR;
}
node->data = data;
node->next = NULL;
// 将node加入到链表最后,此处要考虑是否非空表
if (*h == NULL) // 空表
{
*h = node;
}
else // 非空表
{
PNode temp = *h;
// 找最后一个结点
while (temp->next)
{
temp = temp->next;
}
temp->next = node;
}
return OK;
}
// 打印
void DisPlay(PNode head)
{
if (head == NULL)
{
printf ("该链表是空表!\n");
return;
}
PNode temp = head;
while (temp)
{
printf ("%4d", temp->data);
temp = temp->next;
}
printf ("\n");
}
int main()
{
PNode head = NULL;
int i = 0;
for (i = 0; i < 10; i++)
{
if (Create_List_Tail(&head, i) != OK)
{
return ERROR;
}
}
DisPlay(head);
return 0;
}