关键词不能为空

当前您在: 主页 > 英语 >

数据结构考研必背算法5星

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-25 09:43
tags:

-

2021年1月25日发(作者:霸主)
数据结构考研必背算法
5


文档说明:
本文档是针对考研 专业课
《数据结构》
所编写的,
是对考研数据结构的核心算法进行总结,我们知道,不 管是
统考还是非统考,都会涉及至少
10
分的算法题(非统考至

2 5
分)

而这些题的答案都是在一些经典算法的思想上进
行改进的,本文总结 出必须要熟练掌握的算法,这些算法不
管是考研初期还是冲刺,都应该高度重视,只要对这些代码
进行熟练掌握,才能随机应变,希望对大家有所帮助;
























线性表

1.
逆转顺序表中的所有元素

void Reverse(int A[ ],int n){

int i,t;

for(i=0;i

t = A[i];


A[i] = A[n-i-1];


a[n-i-1] = t;


}
}
自我总结:






2.
删除线性表中数据域为
X
的所有结
点;

void Del_X(Linklist &L,Elemtype X){

Linklist p,q = L;

p = L->next;

while (P!=NULL){


if(p->data == X){



q->next = p->next;



free(p);



p=q->next;


}else{



q = p;



p = p->next;


}

}

if(L->data == X){


q = L;


L = L->next;


free(q);

}
}
自我总结:






3.
删除不带头结点单链表
L
中 所有值为
X
的结点(递归)

void Del_X(Linklist &L,Elemtype X){

LNode *p;

if(L==NULL)


return

if(L->data == X){


P = L;


L = L->next;


free(p);


Del_X(L,X);

}else{


Del_X(L->next,X);

}

}
自我总结:





4.
删除带头结点单链表
L
中所有值为
X
的结点

void Del_X(Linklist &L,Elemtype X){

LNode *p = L->next,*pre = L, *q;

while(P!=NULL){


if(P->data == X){



q = p;



p=p->next;



pre->next = p;



free(q);


}else{



pre = p;



p=p->next;


}

}
} 注:
本算法是在无序单链表中删除满足某种
条件的所有结点;
如:
若是要 删除介于
max

min
之间的所有结点,
只需将
if语句改为
if(p->data>min&&p->data自我总结:





5.
逆转线性表(不带头)

void reverse(Linklist &L){

Linklist p, q, r;

p = L;

q = NULL;

while(p!=NULL){


r = q;


q = p;


p = p->next;


q->next = r;

}

L = q;
}
带头结点:

Linklist reverse(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;
}
自我总结:





6.
复制线性链表
(
递归
)
Linklist copy(Linklist list1){

Linklist list2;

if(list1==NULL)


return NULL;

else{


list2
=
(Linklist)malloc(sizeof(LNode));


list2 ->data = list1->data;


list2
->
next
=
copy(list1->next);


return list2;

}
}
自我总结:






7.
将两个按值有序排列的非空线性表
合并为一个按值有序的线性表

Linklist Mergelist(Linklist L1,Linklist L2){

Linklist L3,p = L1,q = L2,r;

if(L1->data <= L2->data){


L3 = L1;


r = L1;


p = L1->next;

}else{


L3 = L2;


r = L2;


q = L2->next;

}

while(P!=NULL&&q!=NULL){


if(p->data <= q->data){



r->next = p;



r = p;



p = p->next;


}else{



r->next = q;



r = q;



q = q->next;


}

}

r->next=p!=NULL?p:q;

return L3;


}
自我总结:










8.
将两个按值递增线性表合并为一个
按值递减的线性表

void
MergeList(LinkList
&L1,LinkList
&L2){

LNode
*r,*p1=L1->next;*p2=L2->next;

L1->next = NULL;

while(p1&&p2){


if(p1->data <= p2->data){



r = p1->next;



p1->next = L1->next;



L1->next=p1;



p1 = r;


}else{



r = p2->next;



p2->next = L1->next;



L1->next = p2;



p2 = r;


}


if(p1){



p2 = p1;


}


while(p2){



r = p2->next;



p2->next = L1->next;



L1->next = p2;



p2 = r;


}


free(L2);

}

}
自我总结:















1.

先序遍历(递归)

void PreOrder(BiTree T){

if(T!=NULL){


visit(T);


PreOrder(T->lchild);


PreOrder(T->rchild);

}
}
先序遍历(非递归)

void PreOrder(BiTree T){

InitStack(S);

BiTree p =T;

while(p!=NULL||!IsEmpty(S)){


while(p!=NULL){



visit(p);



Push(S,p);



p = p->rchild;


}


Pop(S,p);


p = p->rchild;

}
}
自我总结:





2.

中序遍历(递归)

void InOrder(BiTree T){

if(T!=NULL){


InOrder(T->lchild);


Visit(T);


InOrder(T->rchild);

}
}

中序遍历(非递归)

void InOrder(BiTree T){

InitStack(S);

BiTree p = T;

while(p||

IsEmpty(S)){


if(p){



Push(S,p);



p = p->lchild;


}


else{



Pop(S,p);



Visit(p);



p=p->rchild;


}

}
}
自我总结:





3.

后序遍历(递归)

void PostOrder(BiTree T){

if(T!=NULL){


PostOrder(T->lchild);


PostOrder(T->rchild);


Visit(T);

}
}
后序遍历(非递归)

void PostOrder(BiTree T){

InitStack(S);

BiTree p = T;

r = NULL;

while(p||!IsEmpty(S)){


if(p){



Push(S,p);



p = p->lchild;


}else{



GetTop(S,p);



if(p->rchild&&p->rchild!=r){




p = p->rchild;




Push(S,p);




p = p->lchild;



}else{




Pop(S,p);




Visit(p);




r = p;




p = NULL;



}


}

}
}
自我总结:





4.

层序遍历(自上而下,自左至右)

-


-


-


-


-


-


-


-



本文更新与2021-01-25 09:43,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/565154.html

数据结构考研必背算法5星的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文