//尾插法
//一开始头指针和尾指针都指向头结点,然后往里边插入元素,
//每插入一个元素尾指针就后移一下,现在我们的尾指针就指向我们链表中最后一个结点了
//现在我们开始插入一个新的节点,怎么做呢?
// 我们需要从内存找到一块相应的空间,然后将这个空间的地址存储在,指针变量p当中,这个情况,就称作p指向我们的元素的新节点
//然后我们将新节点的数据域插入我们想要插入的元素,然后将他的指针域设置为空
//然后使用尾插法将这个节点插入到我们的链表当中去
//实际上就是给元素的最后一个节点的指针域赋值,赋值谁呢,,,
//赋值的值就是我们的p指针所指向的新节点的地址,把p指针变量所指向的节点的地址赋值给前一个我们想插入的节点的指针域(尾指针所指向的next域),
//就是我们新节点所赋值的域
//简而言之,言而简之,就是分三步
//开辟新空间,
//数据域赋值我们想要插入的数据,指针域为空,指针变量p指向新节点的地址,
//然后用链表的尾指针指向新的节点的地址,
//最后将新建的空间地址的指针变量的值赋值给前尾指针的地址,尾指针指向的地址就变成了新插入节点的地址
void CreatList_R(LinkList &L,int n){
L = new LNode();//头个节点
L->next = null;
r = L;// 尾指针r 指向头结点
for(int i = 0;i < n;i++){
p = new LNode();//生成新的节点
cin >> p->data;
p -> next = null;
r -> next = p;//插入到表尾
r = p; //r指向新的尾节点
}
} //creatlist_r 复杂度O(n)
一般的话都是给一个头指针,尾插遍历到最后。生成新结点直接插入数据,改变原有最后一个结点的指针域指向新结点就OK了 一起加油!!!