資源描述:
《筆試面試前需要掌握的專業(yè)知識》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、需要掌握的知識匯總2007-9-22前面是各種專業(yè)知識及里面所需要掌握的各種重點,后面是一些常用的技術(shù)點數(shù)據(jù)結(jié)構(gòu)1.程序運行中堆與棧的區(qū)別。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等。堆,就是那些由new分配的內(nèi)存塊,他們的釋放編譯器不去管,由我們的應(yīng)用程序去控制,一般一個new就要對應(yīng)一個deleteo如果程序員沒有釋放掉,那么在程序結(jié)束后,操作系統(tǒng)會自動回收。2.排序二叉樹的增、刪、查等基本操作。先把二叉樹的基本思路和大致操作方法看一下書,然后敲敲代碼練習一下。這里我
2、寫了一個二叉樹的增、查、刪功能,寫得不是很簡潔。#include#includeusingnamespacestd;typedefstructp{intvalue;structp*left;structp*right;}Point;intaddPoint(Point**root,inttargetValue){if(*root==NULL){*root=newPoint();(*root)->left=(*root)->right=NULL;(*root)->value=targetValue;retu
3、rn0;}Point*p=*root;Point*q=*root;while(p!=NULL){q=p;if(q->valueright;elseif(q->value>targetValue)p=q->left;elsereturn0;)p=newPoint();p->left=p->right=NULL;p->value=targetValue;if(q->valueright=p;elseif(q->value>targetValue)q->left=p;return
4、0;)intshowTree(Point*p){if(p==NULL)return0;showTree(p->left);cout?p->value?nH;showTree(p->right);return0;)intdelPoint(Point**root,inttargetValue){if(*root==NULL)return1;〃首先找到要刪除的節(jié)點Point*p=*root;Point*q=p;while(p!=NULL){if(p->value==targetValue)break;q=p;if(q->valuc5、alue)P=q->right;elseif(q->valuc>targetValue)p=q->Icft;)〃如果沒有對應(yīng)值,則退出if(p==NULL)return1;〃如果p沒冇右子樹,則直接將左子樹上移if(p->right==NULL){if(q->valucright=p->lcft;elseif(q->valuc>targetValue)q->lcft=p->lcft;deletep;return0;)〃如果p冇右子樹,則使用p的后繼替換pPoint*r=p->right;Point*s=p;w
6、hilc(r->lcft!=NULL){s=r;r=r->lcft;)if(s==p){s->right=r->right;}else{s->left=r->right;)if(p==*root)*root=r:else{if(q->valueright=r;elseif(q->value>targetValue)q->left=r;)r->left=p->left;r->right=p->right;deletep;return0;)intmain(intargc,char*argv[]){Point*ma
7、inRoot=NULL;intvaluesf]={10,5,4,2,7,1,20,2,31,5);for(inti=0;i<10;i++){addPoint(&mainRoottvaluesfi]);)showTree(mainRoot);cout?endl;delPoint(&mainRoot,20);showTrcc(mainRoot);cout?cndl;system(”PAUSE”);return0;)3?什么是線索二叉樹。當用二叉鏈表作為二叉樹的存儲結(jié)構(gòu)時,因為每個結(jié)點中只有指向其左、右兒子結(jié)點的指針,所以從任一結(jié)點出發(fā)只能直接找
8、到該結(jié)點的左、右兒子。在一般情況下靠它無法直接找到該結(jié)點在某種遍歷序下的前驅(qū)和后繼結(jié)點、O存放指向結(jié)點在某種遍歷次序下的前驅(qū)和后繼結(jié)點的指針。這種附加的指針稱為線索,加上了線索的