定义:
typedef char ListData;
typedef struct node
{
ListData data;
struct node * link;
}ListNode;
typedef ListNode * LinkList;
LinkList first; //定义头指针
LinkList last; //定义尾指针
1.前插法建立单链表
LinkList creatListF(void)
{
char ch;
ListNode *q;
LinkList head = (LinkList)malloc(sizeof(ListNode));
head->link = NULL; //建立头结点
while((ch=getchar())!='\n'){ //接收回车符之前的字符
//为每个节点开辟内存空间
q = (ListNode *)malloc(sizeof(ListNode));
q->data = ch;
q->link = head->link; //将q节点的指针域指向头结点的后继
head->link = q; //将头结点指向插入的节点
}
return head;
}
2.尾插法建立单链表
LinkList creatListF()
{
char ch;
ListNode * q; //q插入节点
LinkList head = (LinkList)malloc(sizeof(ListNode));
head->link = NULL;
last = head; //初始化指向头结点
while((ch=getchar())!='\n')
{
q = (ListNode *)malloc(sizeof(ListNode));
q->data = ch;
last->link = q; //将尾节点指针域指向插入节点q;
last = q; //将尾指针指向q节点;
}
last->link = NULL; //将尾节点的指针域赋空值
return head;
}