顺序表
插入平均移动结点次数:n/2
删除平均移动结点次数:n-1/2
查找平均移动结点次数:n+1/2
链表:
头插法:
LinkList HeadInsertList(LinkList L, int data) //头插法建立链表
{
LinkList s = new LinkList();
s.data = data;
s.next = L.next;
L.next = s; //头指针的指针域next指向s节点,使得s成为开始节点。
return L;
}
LinkList HeadInsertCreate(int[] a){
LinkList s = new LinkList();
s.next = NULL;
for(int i=0;i<a.length(),i++){
HeadInsertList(L, data);
}
return L;
}
尾插法:
LinkList TailCreatList(int a[]) //尾插法建立链表
{
L = new LinkList();
LinkList s,r;
r = L;
for (int i = 0; i < a.length(); i++) {
s = new List();
s.data = a[i];
r.next = s;
r = s;
}
r.next = NULL;
return L;
}
单链表逆置:
LinkList Reverse_HeadInsert(LinkList L){
LNode p,r;
p=L.next;
L.next=NULL;
while(p!=NULL){
r=p.next;
p.next=L.next;
L.next=p;
p=r;
}
return L;
}
LinkList Reverse_Direct(LinkList L){
LNode pre,p=L.next,r=p.next;
p.next=NULL;
while(r!=NULL){
pre=p;
p=r;
r=r.next;
p.next=pre;
}
L.next=p;
return L;
}