Ëã·¨ÓëÊý¾Ý½á¹¹¸´Ï° ÏÂÔØ±¾ÎÄ

s¡únext=H[i]; H[i]=s; }// else

}//else

}//F2

void Delete_HS(HashTable &H, KeyType key){

//¹þÏ£±íɾ³ý£¬ÓÃÁ´µØÖ··¨½â¾ö³åÍ»

i=H(key); //»ñµÃ¹þÏ£µØÖ· if(H[i]= =Null) exit(1);

p=H[i];q=p; // pΪ¹¤×÷Ö¸Õ룬qΪpǰÇ÷ while(p&&p¡údata!=key) {//²éÕÒ

q=p; p=p¡únext; }//while

if(!p) exit(1);

if(q==H[i]){ //keyΪµÚÒ»½áµã H[i]p¡únext; free(p); }// if else{

q¡únext=p¡únext;

free(p);

}//else }//Delete_HS

12£®Éè¹Ø¼ü×ÖÊÇÒ»¸öÓÉ26¸öСд×Öĸ×é³ÉµÄ×Ö·û´®£¬¹þÏ£±íµÄ³¤¶ÈΪ26¡£ÊÔ±àдËã·¨£¬½¨Á¢¹þÏ£±í£¬²¢ÒÔµÚÒ»¸ö

×Ö·ûµÄ×Öµä˳ÐòÊä³ö¹þÏ£±íÖеÄËùÓйؼü×Ö¡£Éè¹þÏ£º¯ÊýΪhast(x)=xÖеĵÚÒ»¸ö×Ö·ûÔÚ×Öµä˳ÐòÖеÄÐòºÅ£¬²ÉÓÃÏßÐÔ̽²âÔÙÉ¢Áз¨À´½â¾ö³åÍ»¡££¨¼ÙÉ躯Êýf(x)Äܹ»¼ÆËã³öxÖеĵÚÒ»¸ö×Ö·ûÔÚ×Öµä˳ÐòÖеÄÐòºÅ£©¡£ void create_Hs(RedType &H,key Type key){

i=Hash(key);//´´½¨¹þÏ£±í if(H(i)==Null)//²åÈë H(i)=key;

else{ //½â¾ö³åÍ»£¬ÔÙ²åÈë

j=(i+1)%m; //mΪ±í³¤ while (j!=i){

if(H[j]==Null)

H[j]=key; else j=(j+1)%m; }//while

}//create_Hs

void print_Hs(RedType H){

//Êä³ö¹þÏ£±í

for (i=0;i<26;i++){

j=1;

while(H[j])!=Null{

if(f(H[j])==i)

printf(H[j]); j=(j+1)%m; }//while }//for }//print_Hs

13

Îå¡¢Ëã·¨Éè¼ÆÌâ

1. ÒÑÖªfΪµ¥Á´±íµÄ±íÍ·Ö¸Õ룬Á´±íÖд洢µÄ¶¼ÊÇÕûÐÍÊý¾Ý£¬ÊÔÉè¼ÆËã·¨ÓÃÖ±½Ó²åÈëÅÅÐòʹÁ´±í·ÇµÝ¼õÓÐÐò¡£

void InsertSort_L(Linklist &La){

//ÓÃÖ±½Ó²åÈëÅÅÐòʹÁ´±íµÝÔöÓÐÐò if(La¡únext){ //Á´±í²»¿Õ

p=La¡únext¡únext; La¡únext¡únext¡úNull; while(p!=Null){

r=p¡únext;//ÔÝ´æpµÄºó¼Ì¡£ q=La;

while(q¡únext&&q¡únext¡údata

q=q¡únext;//²éÕÒ²åÈëλÖá£

p¡únext=q¡únext;//²åÈë

q¡únext=p; p=r; }//while }//if

}//InsertSort_L

2. Éè¼ÆËã·¨£¬ÅжÏÒ»¸öÒÔÁÚ½Ó±íΪ´æ´¢½á¹¹µÄÎÞÏòͼGÊÇ·ñÁ¬Í¨ÓУ¬ÈôÁ¬Í¨£¬Ôò·µ»Ø1£¬·ñÔò£¬·µ»Ø0¡£

int connect(ALGraph G){ //ÅжÏÒÔÁÚ½Ó±íΪ´æ´¢½á¹¹µÄÎÞÏòͼÊÇ·ñÁ¬Í¨

flag=1;

for(i=0;i

if(visited[i]=0){ flag==0; breek; } return flag;

}// connect void dfs(ALGraph G,int visited[],int v){ //²ÉÓÃÉî¶ÈÓÅÏȱéÀúµÄË㷨˼Ïë visited[v]=1;

p=G.ver[v].firstarc; while(p){

if(visited[p¡úadjvex]==0) dfs(G,visited,p¡úadjvex);

p=p¡únext; }//whike

}//dfs

3£®Éè¼ÆËã·¨SelectSortµÄ¹¦ÄÜÊÇ£ºÓõ¥Á´±íʵÏÖ¼òµ¥Ñ¡ÔñÅÅÐò£¨ÉèLÊÇ´øÍ·½áµãµÄµ¥Á´±íµÄÍ·Ö¸Õ룬²¢ÎªÒÑÖªµÄLinkListÀàÐÍ£©¡£

void Selectsort(LinkList &L){ //Óõ¥Á´±íʵÏÖ¼òµ¥Ñ¡ÔñÅÅÐò

p=L£­>next; //³õʼ»¯£¬pΪ¹¤×÷Ö¸Õë

while(p){//qΪ²åÈëÖ¸Õ룬minΪµ±Ç°×îСָÕë min=p;q=p£­>next;

while(q){ //Ò»ÌËÑ¡ÔñÅÅÐò if(q£­>datadata) min=p; q=q£­>next;

14

}//while(q) if(min){//½»»»

temp=p£­>data; p£­>data=min£­>data; min£­>data=temp; }//if

p=p£­>next;

}//while(p) }//Selectsort

4£®ÒÑÖªÉî¶ÈΪhµÄ¶þ²æÊ÷²ÉÓÃ˳Ðò´æ´¢½á¹¹´æ·ÅÔÚÊý×éB[1..2h-1]ÖУ¬Éè¼ÆÒ»¸öµÝ¹éËã·¨£¬²úÉú¸Ã¶þ²æÊ÷µÄ¶þ²æÁ´±í½á¹¹¡£

void CreateTree(int B[2h],int j,BiTree t){

//´´½¨tÊ÷µÄ¶þ²æÁ´±í½á¹¹£¬jΪÊý×éϱ꣬³õֵΪ1 t=( BiTree ) malloc( sizeof(BiTNode)); t£­>data=B[j]; //´´½¨¸ù½áµã

if(2*j>2h) t£­>Lchild=null;//ÎÞ×ó×ÓÊ÷ else //µÝ¹é´´½¨×ó×ÓÊ÷

t£­>Lchild=CreateTree(B,2*j,t£­>Lchild)£» if(2*j+1>2h) t£­>Rchild=null;//ÎÞÓÒ×ÓÊ÷ else //µÝ¹é´´½¨ÓÒ×ÓÊ÷

t£­>Rchild=CreateTree(B,2*j+1,t£­>Rchild)£» }// CreateTree

5£®ÉèÓÃÊäÈë¹ãÒå±í±íʾµÄ×Ö·û´®À´´´½¨¶þ²æÁ´±í½á¹¹µÄ¶þ²æÊ÷£¬¾ßÌ广¶¨ÈçÏ£º¹ãÒå±íµÄ±íÃû×÷ΪÊ÷µÄ¸ù½áµã£»

ÿ¸ö½áµãµÄ×ó×ÓÊ÷ºÍÓÒ×ÓÊ÷ÓöººÅ·Ö¸î£¬Èô½öÓÐÓÒ×ÓÊ÷£¬Ôò¶ººÅ²»ÄÜÊ¡ÂÔ£»ÒÔÌØÊâ·ûºÅ¡®$¡¯±íʾ¹ãÒå±íµÄ½áβ¡£ÀýÈ磺ÈôÊäÈëµÄ×Ö·û´®ÎªA(B(C),D(E(,F),G))¡£ÊµÏÖÓÃÉÏÊö·½·¨´´½¨¶þ²æÊ÷µÄËã·¨¡£ void CreatTree(BiTree &T,char *str){

//¸ù¾Ý¹ãÒå±íµÄǶÌ×À¨ºÅ±íʾ·¨£¬Éú³É¶þ²æÁ´±íÊ÷ BiTree stack[maxsize],p;

int k,j=0,top=-1; //jΪstrÖ¸Õ룬topΪջ¶¥Ö¸Õë T=null; //³õʼ»¯Õ»¸ùÖ¸Õë Char ch=str[j]; while(ch!=¡¯$¡¯){ switch(ch){

case ¡®(¡¯: top ++; stack[top]=p; //ÈëÕ» k=1; break; // k=1,Ϊ×óº¢×Ó case ¡®)¡¯: top--;break; //³öÕ»

case ¡®,¡¯: k=2; break; //k=2,ΪÓÒº¢×Ó

default: p=(BiTree)malloc(sizeof(BTNode)); p¡údata=ch; p¡úlchild=p¡úrchild=Null;

if(T==Null) T=p; //´´½¨¸ù½áµã else

switch(k){

case ¡®1¡¯: stack[top]¡úlchild=p;

break;

case ¡®2¡¯: stack[top]¡úrchild=p;

break;

}//switch

}//swith

j++;

ch=str[j];

15

}// while }//creatTree

6£®Éè¼ÆËã·¨£¬ÇóÒÔÁÚ½Ó±íΪ´æ´¢½á¹¹µÄ·ÇÁ¬Í¨ÎÞÏòͼGµÄÁ¬Í¨·ÖÁ¿¸öÊý¡£

int count_graph(ALGraph G){

// ÇóÒÔÁÚ½Ó±íΪ´æ´¢½á¹¹µÄ·ÇÁ¬Í¨ÎÞÏòͼGµÄÁ¬Í¨·ÖÁ¿¸öÊý

count=0;

for(i=0;i

count++;

for(i=0;i

visited[i]=0;

dfs(G,visited,0); return count;

}

void dfs(ALGraph G,int visited[],int v){ //²ÉÓÃÉî¶ÈÓÅÏȱéÀúµÄË㷨˼Ïë visited[v]=1;

p=G.ver[v].firstarc; while(p){

if(visited[p¡úadjvex]==0) dfs(G,visited,p¡úadjvex); p=p¡únext; }//whike }//dfs

7£®ÉèÓÐÒ»¸öÕýÕûÊýÐòÁÐ×é³ÉµÄ·ÇµÝ¼õÓÐÐòµ¥Á´±í£¬Ëã·¨¹¦ÄÜ£ºÔÚµ¥Á´±íÖн«±ÈÕýÕûÊýxСµÄÊý°´µÝ¼õ´ÎÐòÅÅÁС£

void F7 (Linklist L;int,x){

p= L¡únext; q=p; //pΪ¹¤×÷Ö¸Õë

pre=L; L¡únext=NULL; .//qÖ¸×îÐ¡ÔªËØ while(P&&P¡údata

r=p¡únext; p¡únext=L¡únext; L¡únext=p; p=r; //ÖÃÄæ }//while

q¡únext=p; pre=q; //ÖØÐÂÁ´½Ó

}//F7

8£®InternetµÄÓòÃûϵͳÊÇÒ»¸öµäÐ͵IJã´Î½á¹¹£¬¿ÉÓÃÊ÷Ðνṹ±íʾ¡£Ã¿Ò»¸öÓòÃû·þÎñÆ÷ÌṩµÄÇøÓòÐÅϢǡºÃÊÇÒÔ

¸Ã½áµãΪ¸ùµÄ×ÓÊ÷ÖеÄÈ«²¿µÄIPµØÖ·¡£Éè¼ÆËã·¨ÒÔº¢×Ó-ÐÖµÜÁ´±í×÷ΪÊ÷µÄ´æ´¢½á¹¹,ʵÏÖËÑË÷ËùÓÐwwwÓòÃûµÄIPµØÖ·¡£

void Outpath(CSTree T,Stack &S){//ËÑË÷IPµØÖ·

while(T){ Push(S,T£­>data)

if(!T£­>firstchild && T£­>data==¡±www¡±)

visitstack(S);//Êä³öÒ»Ìõ·¾¶

else Outpath(T£­>firstchild ,&S)//µÝ¹é±éÀú×ó×ÓÊ÷ Pop(S,e); T=T£­>nextsibiling; // ±éÀúÓÒ×ÓÊ÷ }//while }//Outpath

9£®Éè¼ÆË㷨ʵÏÖÒÔÄæÁÚ½Ó±íΪ´æ´¢½á¹¹µÄÓÐÏòͼµÄÍØÆËÅÅÐò£¨ÒªÇó¸ø³öÄæÁÚ½Ó±íµÄ´æ´¢½á¹¹¶¨Ò壩¡£

16