= p) { printf(¡°Fail to malloc a new node.\n¡±); return S; } if( NULL == S->next) { p->next = NULL; } else { p->next = S->next; } p->data = data; //³õʼ»¯Ð½áµã S->next = p; //²åÈëнáµã return S; } ³öÕ»º¯Êý£º node Pop( LinkStack &S) { node temp; temp.data = 0; temp.next = NULL; if( NULL == S) //¼ìÑéÕ» { printf(¡°There no node in stack!¡±); return temp; } temp = *S; 10 if( S->next == NULL ) { printf(¡°The stack is NULL,can¡¯t pop!\n¡±); return temp; } LinkStack p = S ->next; //½Úµã³öÕ» S->next = S->next->next; temp = *p; free( p ); p = NULL; return temp; } ˫ջʵÏÖ¶ÓÁеÄÈë¶Óº¯Êý£º LinkStack StackToQueuPush( LinkStack &S, int data) { node n; LinkStack S1 = NULL; CreateNULLStack( S1 ); //´´½¨¿ÕÕ» while( NULL != S->next ) //S³öÕ»ÈëS1 { n = Pop( S ); Push( S1, n.data ); } Push( S1, data ); //нáµãÈëÕ» while( NULL != S1->next ) //S1³öÕ»ÈëS { n = Pop( S1 ); Push( S, n.data ); } return S; } ˵Ã÷£ºÓÃÁ½¸öÕ»Äܹ»ÊµÏÖÒ»¸ö¶ÓÁеŦÄÜ£¬ÄÇÓÃÁ½¸ö¶ÓÁÐÄÜ·ñʵÏÖÒ»¸ö¶ÓÁеŦÄÜÄØ£¿½á¹ûÊÇ·ñ¶¨µÄ£¬ÒòΪջÊÇÏȽøºó³ö£¬½«Á½¸öÕ»Á¬ÔÚÒ»Æ𣬾ÍÊÇÏȽøÏȳö¡£¶ø¶ÓÁÐÊÇÏÖÏȽøÏȳö£¬ÎÞÂÛ¶àÉÙ¸öÁ¬ÔÚÒ»Æð¶¼ÊÇÏȽøÏȳö£¬¶øÎÞ·¨ÊµÏÖÏȽøºó³ö¡£ ÃæÊÔÌâ23£º¼ÆËãÒ»¿Å¶þ²æÊ÷µÄÉî¶È Éî¶ÈµÄ¼ÆË㺯Êý£º int depth(BiTree T) { if(!T) return 0; //Åжϵ±Ç°½áµãÊÇ·ñΪҶ×Ó½áµã 11 int d1= depth(T->lchild); //Çóµ±Ç°½áµãµÄ×óº¢×ÓÊ÷µÄÉî¶È int d2= depth(T->rchild); //Çóµ±Ç°½áµãµÄÓÒº¢×ÓÊ÷µÄÉî¶È return (d1>d2 d1:d2)+1; } ×¢Ò⣺¸ù¾Ý¶þ²æÊ÷µÄ½á¹¹Ìص㣬ºÜ¶àËã·¨¶¼¿ÉÒÔÓõݹéËã·¨À´ÊµÏÖ¡£ ÃæÊÔÌâ24£º±àÂëʵÏÖÖ±½Ó²åÈëÅÅÐò Ö±½Ó²åÈëÅÅÐò±à³ÌʵÏÖÈçÏ£º #include void main( void ) { int ARRAY[10] = { 0, 6, 3, 2, 7, 5, 4, 9, 1, 8 }; int i,j; for( i = 0; i < 10; i++) { cout< 12 ×¢Ò⣺ËùÓÐΪ¼ò»¯±ß½çÌõ¼þ¶øÒýÈëµÄ¸½¼Ó½áµã£¨ÔªËØ£©¾ù¿É³ÆΪÉÚ±ø¡£ÒýÈëÉÚ±øºóʹµÃ²éÕÒÑ»·Ìõ¼þµÄʱ¼ä´óÔ¼¼õÉÙÁËÒ»°ë£¬¶ÔÓڼǼÊý½Ï´óµÄÎļþ½ÚÔ¼µÄʱ¼ä¾ÍÏ൱¿É¹Û¡£ÀàËÆÓÚÅÅÐòÕâÑùʹÓÃƵÂʷdz£¸ßµÄËã·¨£¬Òª¾¡¿ÉÄܵؼõÉÙÆäÔËÐÐʱ¼ä¡£ËùÒÔ²»ÄÜ°ÑÉÏÊöËã·¨ÖеÄÉÚ±øÊÓΪµñ³æС¼¼¡£ ÃæÊÔÌâ25£º±àÂëʵÏÖðÅÝÅÅÐò ðÅÝÅÅÐò±à³ÌʵÏÖÈçÏ£º #include #define LEN 10 //Êý×鳤¶È void main( void ) { int ARRAY[10] = { 0, 6, 3, 2, 7, 5, 4, 9, 1, 8 }; //´ýÅÅÐòÊý×é printf( ¡°\n¡± ); for( int a = 0; a < LEN; a++ ) //´òÓ¡Êý×éÄÚÈÝ { printf( ¡°%d ¡°, ARRAY[a] ); } int i = 0; int j = 0; bool isChange; //É趨½»»»±êÖ¾ for( i = 1; i < LEN; i++ ) { //×î¶à×öLEN-1ÌËÅÅÐò isChange = 0; //±¾ÌËÅÅÐò¿ªÊ¼Ç°,½»»»±ê־ӦΪ¼Ù for( j = LEN-1; j >= i; j¨C ) //¶Ôµ±Ç°ÎÞÐòÇøARRAY[i..LEN]×ÔÏÂÏòÉÏɨÃè { if( ARRAY[j+1] < ARRAY[j] ) { //½»»»¼Ç¼ ARRAY[0] = ARRAY[j+1]; //ARRAY[0]²»ÊÇÉÚ±ø,½ö×öÔÝ´æµ¥Ôª ARRAY[j+1] = ARRAY[j]; ARRAY[j] = ARRAY[0]; isChange = 1; //·¢ÉúÁ˽»»»,¹Ê½«½»»»±êÖ¾ÖÃΪÕæ } } printf( ¡°\n¡± ); for( a = 0; a < LEN; a++) //´òÓ¡±¾´ÎÅÅÐòºóÊý×éÄÚÈÝ { printf( ¡°%d ¡°, ARRAY[a] ); } if( !isChange ) //±¾ÌËÅÅÐòδ·¢Éú½»»»,ÌáÇ°ÖÕÖ¹Ëã·¨ { break; } } printf( ¡°\n¡± ); return; } 13 ÃæÊÔÌâ26£º±àÂëʵÏÖÖ±½ÓÑ¡ÔñÅÅÐò #include¡±stdio.h¡± #define LEN 9 void main( void ) { int ARRAY[LEN]={ 5, 6, 8, 2, 4, 1, 9, 3, 7 }; //´ýÐòÊý×é printf(¡°Before sorted:\n¡±); for( int m = 0; m < LEN; m++ ) //´òÓ¡ÅÅÐòÇ°Êý×é { printf( ¡°%d ¡°, ARRAY
|