标签:等于 循环 insert -- 节点 data 比较 sts pre
1. 如果一个链表结点数大于等于2,把首节点变为尾结点
status A(LinkList L){ //L是无头结点的单链表
if(L&&L->next){
Q=L; P=L->next;
while(P->next) {P=P->next;}
P->next=Q; Q->next=null;
}
return ok;
} //如果一个链表结点数大于等于2,把首节点变为尾结点。
2. 将单循环链表拆成两个单循环链表
void AA(LNode *a,LNOde *b){//指针a,b分别指向单循环链表中的两个结点
BB(a,b);
BB(b,a);
}
void BB(LNode *s,LNode *q){
p=s;
while(p->next!=q) p=p->next;
p->next=s;
}
3. 有一个递增有序的顺序表va。将 x 插入到顺序表的适当位置上,保持顺序表有序
Status Insert (SqList &va,ElemType x){
int i;
if(va.length=va.listsize) return (overflow);
for(i=va.length; x<va.elem[i-1] ; i--){ //把x依次与表中的元素作比较(从表尾部开始),elem[i-1]表示当前元素,如果当前元素大于x,则把当前元素后移一个位置.
va.elem[i] = va.elem[i-1];
}
va.elem[i]=x;//如果当前元素elem[i-1]小于等于x,则x插入到当前元素elem[i-1]的前面,则x的插入位置为elem[i].
va.length++;
return ok;
}
4. 在带头结点的单链表结构上实现线性表操作 Locate(L,x)
int LocateElem_L(LinkList &L,ElemType x){
int i=1;
p=L->next; //此时,结点p为首元结点
while(p&&p->data != x){
p=p->next;
i++;
} //结点p为空,或者结点p的数据域等于x,循环结束
if(!p) return 0;//如果p结点为空
else return i;
}
标签:等于 循环 insert -- 节点 data 比较 sts pre
原文地址:http://www.cnblogs.com/wasitututu/p/7457692.html