1.头插法
将新的结点插入到当前链表的表头上(也就是头节点之后,也叫哑节点),插入完成后数据顺序改变;
//建立单链表 //头插法 void createList(Linknode *&L,int a[],int n){ Linknode *s; L=(Linknode*)malloc(sizeof(Linknode)); L->next==null; for(int i=0;i<n;++i) { s=(LinkNode*)mallco(sizeof(Linknode)); s->data=a[i]; s->next=L->next; L->next=s; } }
2.尾插法
将新结点插入到链表的尾部,所以需要一个指针r一直指向当前链表的尾部,最后还需要把链表尾部,也就是r指向的结点的next改位NULL;
//尾插法 //r指针一直指向新的结点 void createList(Linknode *&L,int a[],int n){ Linknde *r; L=(Linknode*)malloc (sizeof(Linknode)); r=L; for(int i=0;i<n;++i){ s=(LinkNode *)malloc (sizeof(Linknode)); s->data=a[i]; r->next=s; r=s; } r->next=null; }