前插法
- 创建一个只有头结点的空链表
- 根据待创建链表包括的元素个数n,循环n次执行以下操作:
- 生成一个新结点*p
- 输入元素值赋给新结点*p的数据域
- 将新结点*p插入到头结点之后
//LinkList,LNode的定义在上上篇文章里
void CreatList_1(LinkList &L,int n){
L=new LNode;
L->next=NULL;
for(i=0;i<n;++i){
p=new LNode;
cin>>p->data;
p->next=L->next;
L->next=p;
}
}
后插法
- 创建一个只有头结点的空链表
- 尾指针r初始化,指向头结点
- 根据待创建链表包括的元素个数n,循环n次执行以下操作:
- 生成一个新结点
- 输入元素值赋给新结点*p的数据域
- 将新结点p插入到尾结点r之后
- 尾指针r指向新的尾结点*p
void CreatList_2(LinkList &L,int n){
L=new LNode;
L->next=NULL;
r=L;
for(i=0;i<n;++i){
p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}