前插法
从空表开始重复读入数据
1、生成新节点
2、将读入的数据存放到新的数据域中
3、将该新节点插入到链表的前端
void CreateList_F(LinkList& L, int n) {
L = new LNode;
L->next = NULL;//建立带有头结点的单链表
for (i = n; i > 0; --i) {
p = new LNode;//生成新的节点
cin >> p->data;//输入元素值
p->next = L - next;
L - next = p;//插入到表头
}
}
尾插法
1、从空表L开始,将新节点逐个插入到链表的尾部,尾指针r指向链表的尾结点
2、初始时,r同L均指向头结点。每读入一个数据元素则申请一个新节点,将新节点插入到尾结点后,r指向新节点
void CreateList_L(LinkList& L, int n) {
//正序输入n个元素的值,建立带有表头节点的单链表L
L = new LNode;
L->next = NULL;
r = L;//尾指针r指向头结点
for (i = 0; i < n; ++i) {
p = new LNode;//生成新节点
cin >> p->data;//输入元素值
p->next = NULL;//
r->next = p;//插入到表尾
r = p;//r指向新的尾结点
}
}