数据结构考研必背算法 5 星文档说明:本文档是针对考研专业课《数据结构》所编写的是对考研数据结构的核心算法进行总结,我们知道,不管是统考还是非统考,都会涉及至少 10 分的算法题(非统考至少 25 分),而这些题的答案都是在一些经典算法的思想上进行改进的,本文总结出必须要熟练掌握的算法,这些算法不管是考研初期还是冲刺,都应该高度重视,只要对这些代码进行熟练掌握,才能随机应变,希望对大家有所帮助;线性表3■删除不带头结点单链表 L 中所有值为1■逆转顺序表中的所有元素voidReverse(intA[],intn){inti,t;for(i=0;idata==X){P=L;L=L->next;free(p);Del_X(L,X);}else{Del_X(L->next,X);}}自我总结:2
删除线性表中数据域为 X 的所有结点;八、、,voidDel_X(Linklist&L,ElemtypeX){Linklistp,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);}}自我总结:4■删除带头结点单链表 L 中所有值为 X 的结点voidDel_X(Linklist&L,ElemtypeX){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