关键词不能为空

当前您在: 主页 > 英语 >

数据结构考研必背算法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星的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文