锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产午夜精品久久久久九九电影 ,久久99精品国产麻豆蜜芽,久久国产乱子伦免费精品http://www.shnenglu.com/deercoder/articles/102117.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:48:00 GMThttp://www.shnenglu.com/deercoder/articles/102117.htmlhttp://www.shnenglu.com/deercoder/comments/102117.htmlhttp://www.shnenglu.com/deercoder/articles/102117.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102117.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102117.html棰樼洰濡備笅錛?br>1錛庤鏌愪簩鍙夋爲鐨勭粨鐐圭被鍨嬩負鏁存暟綾誨瀷錛屼互浜屽弶閾捐〃褰㈠紡浣滀負瀛樺偍緇撴瀯銆傝瘯緙栫▼瀹炵幇錛?br>(1) 鐢熸垚涓媯典簩鍙夋爲.
(2) 鐢ㄩ掑綊綆楁硶銆侀潪閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑閬嶅巻錛?br>(3) 姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰,鍒嗗埆鐢ㄩ掑綊綆楁硶銆侀潪閫掑綊綆楁硶瀹炵幇錛?br>(4) 鎸夊眰嬈¢亶鍘嗕簩鍙夋爲(鎻愮ず錛氫嬌鐢ㄤ竴涓槦鍒楀疄鐜幫級錛?br>*(5) 姹備簩鍙夋爲鐨勯珮搴?娣卞害)錛?br>*(6) 鍒ゆ柇鏄惁涓哄畬鍏ㄤ簩鍙夋爲錛岃緭鍑?Yes!'/'No!'錛?br>*(7) 浜ゆ崲姣忎釜緇撶偣鐨勫乏鍙沖瓙鏍戯紱
*(8) 瀵逛氦鎹㈠乏鍙沖瓙鏍戝悗鐨勪簩鍙夋爲浣滀腑搴忛亶鍘嗐?br>#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define ERROR  0
#define OK  1
#define OVERFLOW -2
#define queuesize 20
typedef struct BiTNode{
    int data;
    struct BiTNode *lchild,*rchild; //宸﹀彸瀛╁瓙鎸囬拡
}BiTNode,*BiTree;
typedef struct Queue{
     int front ,rear ;
     BiTree data[queuesize]; //寰幆闃熷垪鍏冪礌綾誨瀷涓轟簩鍙夐摼琛ㄧ粨鐐規寚閽?br>     int count;
}Queue; //寰幆闃熷垪緇撴瀯瀹氫箟

int CreateBiTree(BiTree * T) { //澹版槑鐨勫氨鏄竴涓狟iTree綾誨瀷鐨勬寚閽?閫氳繃淇敼鏉ュmain涓殑T鍋氫慨鏀癸紝鐒跺悗浣垮叾鎸囧悜鏍圭粨鐐?br>  // 鎸夊厛搴忔搴忚緭鍏ヤ簩鍙夋爲涓粨鐐圭殑鍊鹼紙涓涓瓧絎︼級錛岀┖鏍煎瓧絎﹁〃紺虹┖鏍戯紝
  // 鏋勯犱簩鍙夐摼琛ㄨ〃紺虹殑浜屽弶鏍慣銆?br>  int ch;
  printf("璇瘋緭鍏ヤ竴涓牴緇撶偣鐨勫鹼紙濡傛灉涓虹┖錛屽垯杈撳叆0錛塡n");
  scanf("%d",&ch);
  if (ch==0) (*T)= NULL;
  else {
    if (!(*T = (BiTNode *)malloc(sizeof(BiTNode))))  return ERROR;
    (*T)->data = ch;              // 鐢熸垚鏍圭粨鐐?br>    CreateBiTree(&(*T)->lchild);   // 鏋勯犲乏瀛愭爲
    CreateBiTree(&(*T)->rchild);   // 鏋勯犲彸瀛愭爲
  }
  return OK;
} // CreateBiTree

int PreOrderTraverse(BiTree T) //鐢ㄩ掑綊綆楁硶鍐欑殑閬嶅巻鍑芥暟錛屾寜鐓у厛搴忛亶鍘嗭紝鍚屾椂杈撳嚭緇撶偣鐨勫?br>{
    if(T!=NULL)
    {
        printf("%d  ",T->data);
        PreOrderTraverse(T->lchild);
        PreOrderTraverse(T->rchild);
    }
    return OK;
}

int InorderTraverse(BiTree T)
{
    if(T!=NULL)
    {
        InorderTraverse(T->lchild);
        printf("%d ",T->data);
        InorderTraverse(T->rchild);
    }
    return OK;
}
int PreOrderTraverse2(BiTree T)  //鐢ㄩ潪閫掑綊鐨勭畻娉曞啓鐨勯亶鍘嗗嚱鏁幫紝鎸夌収鍏堝簭閬嶅巻錛屽悓鏃惰緭鍑虹粨鐐圭殑鍊?br>{
   BiTree p,s[20];
   int top=0;
   p=T;
   while((p!=NULL)||(top>0))
   {
       while(p!=NULL)
       {
           printf("%d ",p->data);
           s[++top]=p;
           p=p->lchild;
       }
       p=s[top--];
       p=p->rchild;
   }
   return OK;
}

int get_all_node(BiTree T)  //姹傚嚭鎬葷殑緇撶偣鐨勪釜鏁?br>{
   BiTree p,s[20];
   int num_node=0;
   int top=0;
   p=T;
   while((p!=NULL)||(top>0))
   {
       while(p!=NULL)
       {
           num_node++;
           s[++top]=p;
           p=p->lchild;
       }
       p=s[top--];
       p=p->rchild;
   }
   return num_node;
}

int get_node0_1(BiTree T)//鍒╃敤閫掑綊綆楁硶寰楀埌搴︿負0鐨勭粨鐐圭殑涓暟
{
    int num1,num2;
    if(T==NULL)
        return 0;
    else
    {
        if((T->lchild==NULL)&&(T->rchild==NULL))
            return 1;
        else
        {
            num1=get_node0_1(T->lchild);
            num2=get_node0_1(T->rchild);
            return (num1+num2);
        }
    }
}
int get_node0_2(BiTree T) //鍒╃敤闈為掑綊綆楁硶錛屽悓鏃墮噰鐢ㄥ眰嬈¢亶鍘嗙殑鏂規硶錛屽緱鍒板害涓?鐨勭粨鐐? 
{
     Queue *q;
     BiTree p=T;
     int num=0;
     q=(Queue *)malloc(sizeof(Queue));
     q->front=0;
     q->rear=0;
     q->data[q->rear]=p;
     q->rear++;
     while(q->front < q->rear)
     {
         p=q->data[q->front];
         q->front++;
         if(p->lchild==NULL && p->rchild==NULL)
         {
             num++;
         }
         if(p->lchild!=NULL)
         {
             q->data[q->rear]=p->lchild;
             q->rear++;
         }
         if(p->rchild!=NULL)
         {
             q->data[q->rear]=p->rchild;
             q->rear++;
         }
     }
    return num;
}

int get_node1(BiTree T) //鍒╃敤鎬葷殑鍏崇郴姹傚嚭搴︿負1鐨勭粨鐐圭殑涓暟
{
    int num=get_all_node(T)-2*get_node0_1(T)+1;
    return num;
}
int get_node1_1(BiTree T)   //闈為掑綊綆楁硶錛屽悓鏃跺埄鐢ㄥ叧緋繪眰搴︿負1鐨勭粨鐐廣?br>{
    int num=get_all_node(T)-2*get_node0_2(T)+1;
    return num;
}
int get_node2(BiTree T) //鍒╃敤搴︿負2鐨勭粨鐐逛釜鏁頒笌搴︿負0鐨勭粨鐐逛釜鏁扮殑鍏崇郴寰楀埌
{
    int num=get_node0_1(T)-1;
    return num;
}
int get_node2_1(BiTree T)   //闈為掑綊綆楁硶錛屽悓鏃跺埄鐢ㄥ叧緋繪眰搴︿負2鐨勭粨鐐廣?br>{
    int num=get_node0_2(T)-1;
    return num;
}
int get_node(BiTree T)
{
    int get;
   printf("璇瘋緭鍏ヤ綘瑕佹煡鎵劇殑緇撶偣鐨勫害\n");
   printf("1.鏌ヨ搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("2.鏌ヨ搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("3.鏌ヨ搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   scanf("%d",&get);
   switch(get){
   case 1:
      printf("搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node0_1(T));
      break;
   case 2:
       printf("搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node1(T));
       break;
   case 3:
       printf("搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node2(T));
       break;
   }
   return OK;
}
int get_node_1(BiTree T)        //鍒╃敤闈為掑綊綆楁硶鐨勫疄鐜?br>{
    int get;
    printf("涓嬮潰鏄敤闈為掑綊綆楁硶鏉ユ煡璇n");
   printf("璇瘋緭鍏ヤ綘瑕佹煡鎵劇殑緇撶偣鐨勫害\n");
   printf("1.鏌ヨ搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("2.鏌ヨ搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("3.鏌ヨ搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   scanf("%d",&get);
   switch(get){
   case 1:
      printf("搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node0_2(T));
      break;
   case 2:
       printf("搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node1_1(T));
       break;
   case 3:
       printf("搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node2_1(T));
       break;
   }
   return OK;
}
int LevelOrder(BiTree T)
   Queue *q;
     BiTree p;
     int flag=0;                      //瀹氫箟flag涓哄眰鍙?br>     q=(Queue *)malloc(sizeof(Queue));  //鐢寵寰幆闃熷垪絀洪棿
     q->rear=q->front=q->count=0;      //灝嗗驚鐜槦鍒楀垵濮嬪寲涓虹┖
     q->data[q->rear]=T;
     q->count++;
     q->rear=(q->rear+1)%queuesize;       //灝嗘牴緇撶偣鍏ラ槦
     while (q->count)                   //鑻ラ槦鍒椾笉涓虹┖錛屽仛浠ヤ笅鎿嶄綔
         if(q->data[q->front]){            //褰撻槦棣栧厓绱犱笉涓虹┖鎸囬拡錛屽仛浠ヤ笅鎿嶄綔
             p=q->data[q->front];           //鍙栭槦棣栧厓绱?p
             printf("%d ",p->data);        //鎵撳嵃*p緇撶偣鐨勬暟鎹煙淇℃伅
             ++flag;
             q->front=(q->front+1)%queuesize;
             q->count--;       //闃熼鍏冪礌鍑洪槦
             if (q->count==queuesize)//鑻ラ槦鍒椾負闃熸弧錛屽垯鎵撳嵃闃熸弧淇℃伅錛岄鍑虹▼搴忕殑鎵ц
                 printf("the queue full!\n");
             else{            //鑻ラ槦鍒椾笉婊★紝灝?p緇撶偣鐨勫乏瀛╁瓙鎸囬拡鍏ラ槦
                 q->count++;q->data[q->rear]=p->lchild;
                 q->rear=(q->rear+1)%queuesize;
                                   //enf of if
             if (q->count==queuesize)        //鑻ラ槦鍒椾負闃熸弧錛屽垯鎵撳嵃闃熸弧淇℃伅錛岄鍑虹▼搴忕殑鎵ц
                 printf("the queue full!\n");
             else{                      //鑻ラ槦鍒椾笉婊★紝灝?p緇撶偣鐨勫彸瀛╁瓙鎸囬拡鍏ラ槦
                 q->count++;q->data[q->rear]=p->rchild;
                 q->rear=(q->rear+1)%queuesize;
                                         //end of if
                                       //end of if
         else{                          //褰撻槦棣栧厓绱犱負絀烘寚閽堬紝灝嗙┖鎸囬拡鍑洪槦
             q->front=(q->front+1)%queuesize;
             q->count--;
         }
         printf("\n");
         return OK;
     //end of LevelOrder

int height(BiTree T)
{
    BiTree p=T;
    int a,b;
    if(p==NULL)
        return 0;
    else{
       if((p->lchild==NULL)&&(p->rchild==NULL))
            return 1;
    else{
          a=height(p->rchild);
          b=height(p->lchild);
          if(a>b)   return (a+1);
          else    return (b+1);
          }
    }
}

int judge(BiTree T)   //閲囩敤閫掑綊綆楁硶鏉ュ疄鐜板垽鏂槸鍚︿負瀹屽叏浜屽弶鏍?br>{
      if(T ==NULL)  
          return   0;  
      if(T->lchild == NULL && T->rchild== NULL)  
          return   1;   
      if(T->lchild  == NULL  && T->rchild != NULL||T->lchild!=NULL &&T->rchild==NULL)  
          return   0;  
      return   judge(T->lchild) & judge(T->rchild);  

}

int exchange(BiTree T)
{
     BiTree p=T;
     int exch;
     if(p==NULL)
         return OK;
     else
     {
         if(p->lchild!=NULL && p->rchild!=NULL)
         {
             exch=p->lchild->data;
             p->lchild->data=p->rchild->data;
             p->rchild->data=exch;
             exchange(p->lchild);
             exchange(p->rchild);
         }
         else
         {
             if(p->lchild==NULL)
                 exchange(p->rchild);
             else
                 exchange(p->lchild);
         }
         return OK;
     }
}

void main()
{
    BiTree T;         //瀹氫箟涓涓寚鍚態iTNode緇撶偣鐨勬寚閽?br>    int choice;
    do{
    printf("\n");
    printf("璇烽夋嫨鎿嶄綔錛歕n");
    printf("1.鎸夌収鍏堝簭鐨勬搴忕敓鎴愪竴棰椾簩鍙夋爲\n");
    printf("2.閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑鍏堝簭閬嶅巻錛岃緭鍑哄悇緇撶偣鍊糪n");
    printf("3.鐢ㄩ潪閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑閬嶅巻錛岃緭鍑哄悇緇撶偣鍊糪n");
    printf("4.姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰錛堥掑綊綆楁硶瀹炵幇錛塡n");
    printf("5.姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰錛堥潪閫掑綊綆楁硶瀹炵幇錛塡n");
    printf("6.鎸夊眰嬈¢亶鍘嗕簩鍙夋爲\n");
    printf("7.姹備簩鍙夋爲鐨勯珮搴?娣卞害)\n");
    printf("8.鍒ゆ柇鏄惁涓哄畬鍏ㄤ簩鍙夋爲錛岃緭鍑篭"Yes!\"鎴朶"No!\"\n");
    printf("9.浜ゆ崲姣忎釜緇撶偣鐨勫乏鍙沖瓙鏍?騫剁敤鍏堝簭閬嶅巻鐨勬柟寮忚緭鍑篭n");
    printf("10.瀵逛氦鎹㈠乏鍙沖瓙鏍戝悗鐨勪簩鍙夋爲浣滀腑搴忛亶鍘哱n");
    printf("11.閫鍑篭n");
    scanf("%d",&choice);
    switch(choice){
    case 1:
        CreateBiTree(&T);   //鍒涘緩浜屽弶鏍?br>        break;
    case 2:
        PreOrderTraverse(T); //鍒╃敤閫掑綊綆楁硶鐨勫厛搴忛亶鍘嗭紝杈撳嚭緇撶偣鍊?br>        break;
    case 3:
        PreOrderTraverse2(T);//鍒╃敤闈為掑綊綆楁硶鐨勫厛搴忛亶鍘嗭紝杈撳嚭緇撶偣鍊?br>        break;
    case 4:
        get_node(T); //鍒╃敤閫掑綊綆楁硶寰楀埌鐨勫悇涓粨鐐圭殑涓暟
        break;
    case 5:
        get_node_1(T);  //鍒╃敤闈為掑綊綆楁硶寰楀埌鐨勫悇涓粨鐐圭殑涓暟
        break;
    case 6:
        LevelOrder(T);
        break;
    case 7:
        printf("浜屽弶鏍戠殑楂樺害涓?d\n",height(T));
        break;
    case 8:
        if(judge(T)==0)
            printf("No\n");
        else
            printf("Yes\n");
        break;
    case 9:
         exchange(T);
         PreOrderTraverse(T);
         break;
    case 10:
         InorderTraverse(T);
         break;
       
    }while(choice!=11);    
}

娉ㄨ錛氬師鏉ョ殑閭d釜鍑芥暟5鏈夐棶棰橈紝鍗沖埄鐢ㄩ潪閫掑綊綆楁硶姹傚彾瀛愮粨鐐圭殑涓暟銆?br>


鍒樼晠 2009-11-27 21:48 鍙戣〃璇勮
]]>
浜屽弶鏍戠殑鎿嶄綔http://www.shnenglu.com/deercoder/articles/102109.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:36:00 GMThttp://www.shnenglu.com/deercoder/articles/102109.htmlhttp://www.shnenglu.com/deercoder/comments/102109.htmlhttp://www.shnenglu.com/deercoder/articles/102109.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102109.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102109.html棰樼洰濡備笅錛?br>1錛庤鏌愪簩鍙夋爲鐨勭粨鐐圭被鍨嬩負鏁存暟綾誨瀷錛屼互浜屽弶閾捐〃褰㈠紡浣滀負瀛樺偍緇撴瀯銆傝瘯緙栫▼瀹炵幇錛?br>(1) 鐢熸垚涓媯典簩鍙夋爲.
(2) 鐢ㄩ掑綊綆楁硶銆侀潪閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑閬嶅巻錛?br>(3) 姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰,鍒嗗埆鐢ㄩ掑綊綆楁硶銆侀潪閫掑綊綆楁硶瀹炵幇錛?br>(4) 鎸夊眰嬈¢亶鍘嗕簩鍙夋爲(鎻愮ず錛氫嬌鐢ㄤ竴涓槦鍒楀疄鐜幫級錛?br>*(5) 姹備簩鍙夋爲鐨勯珮搴?娣卞害)錛?br>*(6) 鍒ゆ柇鏄惁涓哄畬鍏ㄤ簩鍙夋爲錛岃緭鍑?Yes!"/"No!"錛?br>*(7) 浜ゆ崲姣忎釜緇撶偣鐨勫乏鍙沖瓙鏍戯紱
*(8) 瀵逛氦鎹㈠乏鍙沖瓙鏍戝悗鐨勪簩鍙夋爲浣滀腑搴忛亶鍘嗐?br>

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define ERROR  0
#define OK  1
#define OVERFLOW -2
#define queuesize 20
typedef struct BiTNode{
    int data;
    struct BiTNode *lchild,*rchild; //宸﹀彸瀛╁瓙鎸囬拡
}BiTNode,*BiTree;
typedef struct Queue{
    int front ,rear ;
     BiTree data[queuesize]; //寰幆闃熷垪鍏冪礌綾誨瀷涓轟簩鍙夐摼琛ㄧ粨鐐規寚閽?br>     int count;
}Queue; //寰幆闃熷垪緇撴瀯瀹氫箟

int CreateBiTree(BiTree * T) { //澹版槑鐨勫氨鏄竴涓狟iTree綾誨瀷鐨勬寚閽?閫氳繃淇敼鏉ュmain涓殑T鍋氫慨鏀癸紝鐒跺悗浣垮叾鎸囧悜鏍圭粨鐐?br>  // 鎸夊厛搴忔搴忚緭鍏ヤ簩鍙夋爲涓粨鐐圭殑鍊鹼紙涓涓瓧絎︼級錛岀┖鏍煎瓧絎﹁〃紺虹┖鏍戯紝
  // 鏋勯犱簩鍙夐摼琛ㄨ〃紺虹殑浜屽弶鏍慣銆?br>  int ch;
  printf("璇瘋緭鍏ヤ竴涓牴緇撶偣鐨勫鹼紙濡傛灉涓虹┖錛屽垯杈撳叆0錛塡n");
  scanf("%d",&ch);
  if (ch==0) (*T)= NULL;
  else {
    if (!(*T = (BiTNode *)malloc(sizeof(BiTNode))))  return ERROR;
    (*T)->data = ch;              // 鐢熸垚鏍圭粨鐐?br>    CreateBiTree(&(*T)->lchild);   // 鏋勯犲乏瀛愭爲
    CreateBiTree(&(*T)->rchild);   // 鏋勯犲彸瀛愭爲
  }
  return OK;
} // CreateBiTree

int PreOrderTraverse(BiTree T) //鐢ㄩ掑綊綆楁硶鍐欑殑閬嶅巻鍑芥暟錛屾寜鐓у厛搴忛亶鍘嗭紝鍚屾椂杈撳嚭緇撶偣鐨勫?br>{
    if(T!=NULL)
    {
        printf("%d  ",T->data);
        PreOrderTraverse(T->lchild);
        PreOrderTraverse(T->rchild);
    }
    return OK;
}

int InorderTraverse(BiTree T)
{
    if(T!=NULL)
    {
        InorderTraverse(T->lchild);
        printf("%d ",T->data);
        InorderTraverse(T->rchild);
    }
    return OK;
}
int PreOrderTraverse2(BiTree T)  //鐢ㄩ潪閫掑綊鐨勭畻娉曞啓鐨勯亶鍘嗗嚱鏁幫紝鎸夌収鍏堝簭閬嶅巻錛屽悓鏃惰緭鍑虹粨鐐圭殑鍊?br>{
   BiTree p,s[20];
   int top=0;
   p=T;
   while((p!=NULL)||(top>0))
   {
       while(p!=NULL)
       {
           printf("%d ",p->data);
           s[++top]=p;
           p=p->lchild;
       }
       p=s[top--];
       p=p->rchild;
   }
   return OK;
}

int get_all_node(BiTree T)  //姹傚嚭鎬葷殑緇撶偣鐨勪釜鏁?br>{
   BiTree p,s[20];
   int num_node=0;
   int top=0;
   p=T;
   while((p!=NULL)||(top>0))
   {
       while(p!=NULL)
       {
           num_node++;
           s[++top]=p;
           p=p->lchild;
       }
       p=s[top--];
       p=p->rchild;
   }
   return num_node;
}

int get_node0_1(BiTree T)//鍒╃敤閫掑綊綆楁硶寰楀埌搴︿負0鐨勭粨鐐圭殑涓暟
{
    int num1,num2;
    if(T==NULL)
        return 0;
    else
    {
        if((T->lchild==NULL)&&(T->rchild==NULL))
            return 1;
        else
        {
            num1=get_node0_1(T->lchild);
            num2=get_node0_1(T->rchild);
            return (num1+num2);
        }
    }
}
int get_node0_2(BiTree T) //鍒╃敤闈為掑綊綆楁硶寰楀埌搴︿負0鐨勭粨鐐?br>{
    int num=0;
    BiTree p=T,s[20];
    int top=0;      //瀹氫箟涓涓爤
    while((p!=NULL)||(top>0))
    {
        while(p!=NULL)
        {
            s[++top]=p;
            p=p->lchild;
        }
    
          p=s[--top];
        if(p->rchild==NULL)
        {
            ++num;
        }
        else
            p=p->rchild;
        }
    }
    return num;

}

int get_node1(BiTree T) //鍒╃敤鎬葷殑鍏崇郴姹傚嚭搴︿負1鐨勭粨鐐圭殑涓暟
{
    int num=get_all_node(T)-2*get_node0_1(T)+1;
    return num;
}
int get_node1_1(BiTree T)   //闈為掑綊綆楁硶錛屽悓鏃跺埄鐢ㄥ叧緋繪眰搴︿負1鐨勭粨鐐廣?br>{
    int num=get_all_node(T)-2*get_node0_2(T)+1;
    return num;
}
int get_node2(BiTree T) //鍒╃敤搴︿負2鐨勭粨鐐逛釜鏁頒笌搴︿負0鐨勭粨鐐逛釜鏁扮殑鍏崇郴寰楀埌
{
    int num=get_node0_1(T)-1;
    return num;
}
int get_node2_1(BiTree T)   //闈為掑綊綆楁硶錛屽悓鏃跺埄鐢ㄥ叧緋繪眰搴︿負2鐨勭粨鐐廣?br>{
    int num=get_node0_2(T)-1;
    return num;
}
int get_node(BiTree T)
{
    int get;
   printf("璇瘋緭鍏ヤ綘瑕佹煡鎵劇殑緇撶偣鐨勫害\n");
   printf("1.鏌ヨ搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("2.鏌ヨ搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("3.鏌ヨ搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   scanf("%d",&get);
   switch(get){
   case 1:
      printf("搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node0_1(T));
      break;
   case 2:
       printf("搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node1(T));
       break;
   case 3:
       printf("搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node2(T));
       break;
   }
   return OK;
}
int get_node_1(BiTree T)        //鍒╃敤闈為掑綊綆楁硶鐨勫疄鐜?br>{
    int get;
    printf("涓嬮潰鏄敤闈為掑綊綆楁硶鏉ユ煡璇n");
   printf("璇瘋緭鍏ヤ綘瑕佹煡鎵劇殑緇撶偣鐨勫害\n");
   printf("1.鏌ヨ搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("2.鏌ヨ搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   printf("3.鏌ヨ搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟\n");
   scanf("%d",&get);
   switch(get){
   case 1:
      printf("搴︿負0鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node0_2(T));
      break;
   case 2:
       printf("搴︿負1鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node1_1(T));
       break;
   case 3:
       printf("搴︿負2鐨勬墍鏈夌粨鐐圭殑涓暟鏄?d\n",get_node2_1(T));
       break;
   }
   return OK;
}
int LevelOrder(BiTree T)
   Queue *q;
     BiTree p;
     int flag=0;                      //瀹氫箟flag涓哄眰鍙?br>     q=(Queue *)malloc(sizeof(Queue));  //鐢寵寰幆闃熷垪絀洪棿
     q->rear=q->front=q->count=0;      //灝嗗驚鐜槦鍒楀垵濮嬪寲涓虹┖
     q->data[q->rear]=T;
     q->count++;
     q->rear=(q->rear+1)%queuesize;       //灝嗘牴緇撶偣鍏ラ槦
     while (q->count)                   //鑻ラ槦鍒椾笉涓虹┖錛屽仛浠ヤ笅鎿嶄綔
         if(q->data[q->front]){            //褰撻槦棣栧厓绱犱笉涓虹┖鎸囬拡錛屽仛浠ヤ笅鎿嶄綔
             p=q->data[q->front];           //鍙栭槦棣栧厓绱?p
             printf("%d ",p->data);        //鎵撳嵃*p緇撶偣鐨勬暟鎹煙淇℃伅
             ++flag;
             q->front=(q->front+1)%queuesize;
             q->count--;       //闃熼鍏冪礌鍑洪槦
             if (q->count==queuesize)//鑻ラ槦鍒椾負闃熸弧錛屽垯鎵撳嵃闃熸弧淇℃伅錛岄鍑虹▼搴忕殑鎵ц
                 printf("the queue full!\n");
             else{            //鑻ラ槦鍒椾笉婊★紝灝?p緇撶偣鐨勫乏瀛╁瓙鎸囬拡鍏ラ槦
                 q->count++;q->data[q->rear]=p->lchild;
                 q->rear=(q->rear+1)%queuesize;
                                    //enf of if
             if (q->count==queuesize)        //鑻ラ槦鍒椾負闃熸弧錛屽垯鎵撳嵃闃熸弧淇℃伅錛岄鍑虹▼搴忕殑鎵ц
                 printf("the queue full!\n");
             else{                      //鑻ラ槦鍒椾笉婊★紝灝?p緇撶偣鐨勫彸瀛╁瓙鎸囬拡鍏ラ槦
                 q->count++;q->data[q->rear]=p->rchild;
                 q->rear=(q->rear+1)%queuesize;
                                          //end of if
                                        //end of if
         else{                          //褰撻槦棣栧厓绱犱負絀烘寚閽堬紝灝嗙┖鎸囬拡鍑洪槦
             q->front=(q->front+1)%queuesize;
             q->count--;
         }
         printf("\n");
         return OK;
     //end of LevelOrder

int height(BiTree T)
{
    BiTree p=T;
    int a,b;
    if(p==NULL)
        return 0;
    else{
       if((p->lchild==NULL)&&(p->rchild==NULL))
            return 1;
    else{
          a=height(p->rchild);
          b=height(p->lchild);
          if(a>b)   return (a+1);
          else    return (b+1);
          }
    }
}

int judge(BiTree T)   //閲囩敤閫掑綊綆楁硶鏉ュ疄鐜板垽鏂槸鍚︿負瀹屽叏浜屽弶鏍?br>{
      if(T ==NULL) 
          return   0; 
      if(T->lchild == NULL && T->rchild== NULL) 
          return   1;  
      if(T->lchild  == NULL  && T->rchild != NULL||T->lchild!=NULL &&T->rchild==NULL) 
          return   0; 
      return   judge(T->lchild) & judge(T->rchild); 

}

int exchange(BiTree T)
{
     BiTree p=T;
     int exch;
     if(p==NULL)
         return OK;
     else
     {
         if(p->lchild!=NULL && p->rchild!=NULL)
         {
             exch=p->lchild->data;
             p->lchild->data=p->rchild->data;
             p->rchild->data=exch;
             exchange(p->lchild);
             exchange(p->rchild);
         }
         else
         {
             if(p->lchild==NULL)
                 exchange(p->rchild);
             else
                 exchange(p->lchild);
         }
         return OK;
     }
}

void main()
{
    BiTree T;         //瀹氫箟涓涓寚鍚態iTNode緇撶偣鐨勬寚閽?br>    int choice;
    do{
    printf("\n");
    printf("璇烽夋嫨鎿嶄綔錛歕n");
    printf("1.鎸夌収鍏堝簭鐨勬搴忕敓鎴愪竴棰椾簩鍙夋爲\n");
    printf("2.閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑鍏堝簭閬嶅巻錛岃緭鍑哄悇緇撶偣鍊糪n");
    printf("3.鐢ㄩ潪閫掑綊綆楁硶瀹炵幇浜屽弶鏍戠殑閬嶅巻錛岃緭鍑哄悇緇撶偣鍊糪n");
    printf("4.姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰錛堥掑綊綆楁硶瀹炵幇錛塡n");
    printf("5.姹傚害鍒嗗埆涓?銆?銆?鐨勭粨鐐圭殑鏁扮洰錛堥潪閫掑綊綆楁硶瀹炵幇錛塡n");
    printf("6.鎸夊眰嬈¢亶鍘嗕簩鍙夋爲\n");
    printf("7.姹備簩鍙夋爲鐨勯珮搴?娣卞害)\n");
    printf("8.鍒ゆ柇鏄惁涓哄畬鍏ㄤ簩鍙夋爲錛岃緭鍑篭"Yes!\"鎴朶"No!\"\n");
    printf("9.浜ゆ崲姣忎釜緇撶偣鐨勫乏鍙沖瓙鏍慭n");
    printf("10.瀵逛氦鎹㈠乏鍙沖瓙鏍戝悗鐨勪簩鍙夋爲浣滀腑搴忛亶鍘哱n");
    printf("11.閫鍑篭n");
    scanf("%d",&choice);
    switch(choice){
    case 1:
        CreateBiTree(&T);   //鍒涘緩浜屽弶鏍?br>        break;
    case 2:
        PreOrderTraverse(T); //鍒╃敤閫掑綊綆楁硶鐨勫厛搴忛亶鍘嗭紝杈撳嚭緇撶偣鍊?br>        break;
    case 3:
        PreOrderTraverse2(T);//鍒╃敤闈為掑綊綆楁硶鐨勫厛搴忛亶鍘嗭紝杈撳嚭緇撶偣鍊?br>        break;
    case 4:
        get_node(T); //鍒╃敤閫掑綊綆楁硶寰楀埌鐨勫悇涓粨鐐圭殑涓暟
        break;
    case 5:
        get_node_1(T);  //鍒╃敤闈為掑綊綆楁硶寰楀埌鐨勫悇涓粨鐐圭殑涓暟
        break;
    case 6:
        LevelOrder(T);
        break;
    case 7:
        printf("浜屽弶鏍戠殑楂樺害涓?d\n",height(T));
        break;
    case 8:
        if(judge(T)==0)
            printf("No\n");
        else
            printf("Yes\n");
        break;
    case 9:
         exchange(T);
         break;
    case 10:
         InorderTraverse(T);
         break;
     
    }while(choice!=11);   
}


鍒樼晠 2009-11-27 21:36 鍙戣〃璇勮
]]>
綰挎ц〃鐨勯摼寮忓瓨鍌ㄧ粨鏋?/title><link>http://www.shnenglu.com/deercoder/articles/102107.html</link><dc:creator>鍒樼晠</dc:creator><author>鍒樼晠</author><pubDate>Fri, 27 Nov 2009 13:35:00 GMT</pubDate><guid>http://www.shnenglu.com/deercoder/articles/102107.html</guid><wfw:comment>http://www.shnenglu.com/deercoder/comments/102107.html</wfw:comment><comments>http://www.shnenglu.com/deercoder/articles/102107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/deercoder/comments/commentRss/102107.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/deercoder/services/trackbacks/102107.html</trackback:ping><description><![CDATA[<p style="MARGIN-LEFT: 18pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">璁炬煇綰挎ц〃鏁版嵁鍏冪礌鐨勭被鍨嬩負鏁村瀷錛屼互閾捐〃緇撴瀯瀛樺偍綰挎ц〃銆傝瘯緙栫▼瀹炵幇錛?/span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(1)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">杈撳叆鏁版嵁鍏冪礌錛屼互鍏堣繘鍏堝嚭褰㈠紡鍒涘緩鍗曢摼琛?/span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(2)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">閿姣佸崟閾捐〃</span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(3)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">綰挎ц〃緗┖</span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(4)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">姹傜嚎鎬ц〃闀垮害</span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(5)</span></span><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">鍦ㄧ<span lang=EN-US XML:LANG="EN-US">i</span>涓暟鎹厓绱犲墠鎻掑叆鏂扮殑鍏冪礌</span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(6)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">鍒犻櫎絎?span lang=EN-US XML:LANG="EN-US">i</span>涓厓绱?/span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(7)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">鏄劇ず綰挎ц〃涓殑鍏ㄩ儴鍏冪礌</span></p> <p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 39pt"><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"><span>(8)</span></span> <span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt">姹傛渶澶у厓绱犵殑鍊煎拰騫沖潎鍊?/span></p> <p><span style="FONT-FAMILY: 瀹嬩綋; FONT-SIZE: 12pt" lang=EN-US XML:LANG="EN-US"> <wbr></span></p> <br>#include<stdio.h><br>#include<conio.h><br>#include<malloc.h><br>#include<stdlib.h><br>#define ERROR <wbr> <wbr> <wbr> <wbr> 0<br>#define OK <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 1<br>#define OVERFLOW <wbr> -2<br>typedef struct LNode{<br> <wbr> <wbr>  <wbr>int data;<br> <wbr> <wbr>  <wbr>struct LNode *next;<br>}LNode,*LinkList;<br><br>int Create_List(LinkList L,int length)<br>{//鍒涘緩涓涓甫琛ㄥご緇撶偣鐨勫ぇ灝忎負n涓殑鍗曢摼琛?br> <wbr> <wbr>  <wbr>int i; <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>  <wbr><br> <wbr> <wbr>  <wbr>LinkList p, tail; //澹版槑涓瀹氳鍦ㄥ墠闈紝鍚﹀垯浼氬嚭閿?br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> tail=L;<br> <wbr> <wbr>  <wbr>for(i=0;i<length;i++)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> p=(LinkList)malloc(sizeof(LNode));<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>printf("璇瘋緭鍏?d涓暟鎹甛n",length);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>scanf("%d",&p->data);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p->next=NULL;<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> tail->next=p;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>tail=tail->next;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> return OK;<br>}<br><br>int display_all(LinkList L,int length) //渚濊禆浜庨暱搴︼紝鍙槸鍗翠笉瀹氾紝闀垮害鍑芥暟鏈夐棶棰樸?br>{//鏄劇ず鎵鏈夌殑鏁版嵁鍏冪礌<br> <wbr> <wbr>  <wbr>int i;<br> <wbr> <wbr>  <wbr>printf("綰挎ц〃鐨勫叏閮ㄦ暟鎹厓绱犲涓嬶細\n");<br> <wbr> <wbr>  <wbr>for(i=0;i<length-1;i++)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>printf("%d ",L->next->data);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>L=L->next;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr>  <wbr>printf("\n");<br> <wbr> <wbr>  <wbr>return OK;<br>}<br><br>int length_L(LinkList L) //鏈夐棶棰?br>{//姹傚緱綰挎ц〃鐨勯暱搴?br> <wbr> <wbr>  <wbr>int length=0;<br> <wbr> <wbr>  <wbr>LinkList p=L;<br> <wbr> <wbr>  <wbr>while(p!=NULL)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>++length;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p=p->next;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr>  <wbr>return length;<br>}<br><br>int ListInsert(LinkList L,int i ,int *e)<br>{//鎻掑叆鍏冪礌<br> <wbr> <wbr>  <wbr>LinkList p=L,s;<br> <wbr> <wbr>  <wbr>int j=0;<br> <wbr> <wbr>  <wbr>while(p&&j<i-1)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p=p->next;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>++j;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr> <wbr> <wbr> if(!p||j>i-1) return ERROR;<br> <wbr> <wbr>  <wbr> s=(LinkList)malloc(sizeof(LNode));<br> <wbr> <wbr>  <wbr> s->data=*e;<br> <wbr> <wbr>  <wbr> s->next=p->next;<br> <wbr> <wbr> <wbr> <wbr> p->next=s;<br> <wbr> <wbr>  <wbr> return OK;<br>}<br>int ListDelet(LinkList L, int i)<br>{//鍒犻櫎鎸囧畾浣嶇疆鐨勭粨鐐?br> <wbr> <wbr>  <wbr>LinkList p=L,q;<br> <wbr> <wbr>  <wbr>int j=0;<br> <wbr> <wbr>  <wbr>while(p->next&&j<i-1) <wbr> //瀵繪壘絎琲-1涓粨鐐?br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p=p->next;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>++j;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr> <wbr> if(!(p->next)||j>i-1) return ERROR;<br> <wbr> <wbr> <wbr> q=p->next; p->next=q->next;<br> <wbr> <wbr> <wbr> free(q);<br> <wbr> <wbr>  <wbr>return OK;<br>}<br>int Destroy_L(LinkList L) <wbr> <wbr> //榪欓噷浼氶亣鍒頒竴涓棶棰橈紝濡傛灉灝嗗ご緇撶偣free鎺夌殑璇濆氨浼氬嚭閿欙紝<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> //鍥犱負澶寸粨鐐逛笉鏄嚜宸卞垎閰嶇殑錛岃屾槸緋葷粺鍒嗛厤鐨勶紝鍦ㄤ富鍑芥暟涓紝鎵浠ユ棤娉曢噴鏀?br>{<br> <wbr> <wbr> <wbr> <wbr> LinkList head=L,p;<br> <wbr> <wbr>  <wbr> p=head;<br> <wbr> <wbr>  <wbr> if (head)<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> p = head->next ;<br> <wbr> <wbr>  <wbr> head = head->next ;<br> <wbr> <wbr>  <wbr> while(head!=NULL)<br> <wbr> <wbr>  <wbr> {<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> p=head;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> head=head->next;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> free(p);<br> <wbr> <wbr>  <wbr> }<br> <wbr> <wbr>  <wbr> return OK;<br>}<br>int ClearList(LinkList L)<br>{//綰挎ц〃緗┖<br> <wbr> <wbr>  <wbr>L->next=NULL; <wbr> //灝嗗ご緇撶偣鎸囬拡鍩熺疆涓篘ULL<br> <wbr> <wbr>  <wbr>return OK;<br>}<br>int max_num(LinkList L)<br>{<br> <wbr> <wbr>  <wbr>LinkList p=L->next;<br> <wbr> <wbr>  <wbr>int max=0;<br> <wbr> <wbr>  <wbr>while(p!=NULL)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>if(max<=p->data)<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>max=p->data;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p=p->next;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr>  <wbr>return max;<br>}<br><br>float aver_num(LinkList L) <wbr> //娉ㄦ剰鍑芥暟鍚嶄笉瑕佸拰鍙橀噺鍚屽悕錛屽緢瀹規槗鍑洪敊<br>{ //姹傚嚭鎵鏈夊厓绱犵殑騫沖潎鍊?br> <wbr> <wbr> <wbr> LinkList p=L->next;<br> <wbr> <wbr>  <wbr>float average;<br> <wbr> <wbr>  <wbr>int sum=0;<br> <wbr> <wbr>  <wbr>int length=length_L(L);<br> <wbr> <wbr>  <wbr>while(p!=NULL)<br> <wbr> <wbr>  <wbr>{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>sum+=p->data;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>p=p->next;<br> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr>  <wbr>average=(float)sum/(length-1);<br> <wbr> <wbr>  <wbr>return average;<br>}<br><br>void main()<br>{<br> <wbr> <wbr>  <wbr>int i,get,length,e;<br> <wbr> <wbr>  <wbr>LNode L; <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> //鍒涘緩澶寸粨鐐筁<br> <wbr> <wbr>  <wbr>L.next=NULL;<br> <wbr> <wbr>  <wbr>do{<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>printf("\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>printf("1.杈撳叆鏁版嵁鍏冪礌錛屼互鍏堣繘鍏堝嚭褰㈠紡鍒涘緩鍗曢摼琛╘n");<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> printf("2.閿姣佸崟閾捐〃\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("3.綰挎ц〃緗┖\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("4.姹傜嚎鎬ц〃闀垮害\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("5.鍦ㄧi涓暟鎹厓绱犲墠鎻掑叆鏂扮殑鍏冪礌\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("6. 鍒犻櫎絎琲涓厓绱燶n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("7.鏄劇ず綰挎ц〃涓殑鍏ㄩ儴鍏冪礌\n");<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> printf("8.姹傛渶澶у厓绱犵殑鍊煎拰騫沖潎鍊糪n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>printf("9.閫鍑篭n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> printf("璇瘋緭鍏ヤ綘閫夋嫨鐨勬搷浣滃簭鍙穃n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> scanf("%d",&get);<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> switch(get){<br> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> case 1:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> printf("璇瘋緭鍏ユ暟鎹厓绱犵殑涓暟\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> scanf("%d",&length);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Create_List(&L,length);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> break;<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> case 2:<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Destroy_L(&L);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 3:<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> ClearList(&L);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 4:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> length=length_L(&L);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> printf("榪欎釜綰挎ч摼琛ㄧ殑闀垮害(鍚ご緇撶偣)涓?d\n",length);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 5:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> printf("璇峰垎鍒緭鍏ヤ綘瑕佹彃鍏ユ暟鎹殑鍏冪礌鐨勪綅緗?絎琲涓厓绱犱箣鍓?鍜屽?鏁村瀷)\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> scanf("%d,%d",&i,&e);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> ListInsert(&L,i,&e);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 6:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> printf("璇峰垎鍒緭鍏ヤ綘瑕佸垹闄ゆ暟鎹殑鍏冪礌鐨勪綅緗?絎琲涓厓绱?\n");<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> scanf("%d",&i);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> ListDelet(&L,i);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 7:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> length=length_L(&L);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> display_all(&L,length);<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 8:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> printf("綰挎ц〃涓殑鏈澶у厓绱犳槸%d\n",max_num(&L));<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> printf("綰挎ц〃涓墍鏈夊厓绱犵殑騫沖潎鍊?f\n",aver_num(&L));<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr> <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> case 9:<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr> break;<br> <wbr> <wbr>  <wbr> <wbr> <wbr>  <wbr>}<br> <wbr> <wbr>  <wbr>}while(get!=9);<br> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr>  <wbr><br>}<br> <img src ="http://www.shnenglu.com/deercoder/aggbug/102107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/deercoder/" target="_blank">鍒樼晠</a> 2009-11-27 21:35 <a href="http://www.shnenglu.com/deercoder/articles/102107.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>欏哄簭琛ㄧ殑鎿嶄綔http://www.shnenglu.com/deercoder/articles/102108.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:35:00 GMThttp://www.shnenglu.com/deercoder/articles/102108.htmlhttp://www.shnenglu.com/deercoder/comments/102108.htmlhttp://www.shnenglu.com/deercoder/articles/102108.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102108.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102108.html1錛?/span>璁炬煇綰挎ц〃鏁版嵁鍏冪礌鐨勭被鍨嬩負鏁村瀷錛屼互欏哄簭緇撴瀯瀛樺偍綰挎ц〃銆傝瘯緙栫▼瀹炵幇錛?/span>

(1) 綰挎ц〃緗┖

(2) 姹傜嚎鎬ц〃闀垮害

(3) 鏁版嵁鍏冪礌鐨勬彃鍏ユ搷浣?/span>

(4) 鏁版嵁鍏冪礌鐨勫垹闄ゆ搷浣?/span>

(5) 鏄劇ず綰挎ц〃涓殑鍏ㄩ儴鍏冪礌


#include<stdio.h>
#include<malloc.h>
#include <conio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10
#define ERROR     0
#define OK        1
#define OVERFLOW  -2

typedef struct{
   int *elem;
   int length;
   int listsize;
   }SqList;

int InitList_Sq(SqList *L) //鎷彿涓紶閫掑弬鏁版槸鏄畠鐨勬寚閽圠,榪欐牱鎵嶈兘瀵瑰畠鎸囧悜鐨勫厓绱犳敼鍙樸?br>{
  int i;
  L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
  if(!L->elem)  exit(OVERFLOW);
  L->length =10;
  L->listsize = LIST_INIT_SIZE; //鍒嗛厤鍒濆鐨勭┖闂?br>  for(i=0;i<L->length;i++)
  {
      L->elem[i]=i;
  }
  return OK;
}//InitList_Sq

int get_length(SqList *L)
{
    return L->length;
}

int destroy(SqList *L)
{
    L->length=0;
    return OK;
}

int ListInsert_Sq(SqList *L,int i, int e)
{ //鍦ㄩ『搴忚〃L涓殑絎琲涓綅緗箣鍓嶆彃鍏ユ柊鐨勫厓绱爀錛?br>    //i鐨勫悎娉曞間負1<=i<=ListLength_Sq(L)+1;
    int *newbase,*q,*p;
    if(i<1||i>L->length+1) return ERROR;
    if(L->length>=L->listsize){// 褰撳墠鐨勫瓨鍌ㄧ┖闂村凡婊★紝澧炲姞鍒嗛厤
         newbase = ( int *)realloc(L->elem,( L->listsize +LISTINCREMENT)*sizeof(int));
         if(!newbase) exit(OVERFLOW) ; //瀛樺偍絀洪棿鍒嗛厤澶辮觸
         L->elem = newbase;
         L->listsize+=LISTINCREMENT;    
   }
   q=&(L->elem[i-1]);
   for(p=&(L->elem[L->length-1]);p>=q;--p)  *(p+1)=*p;
                                       //鎻掑叆浣嶇疆鍙婁箣鍚庣殑鍏冪礌鍙崇Щ            
   *q=e;
   ++L->length;
   return OK;
}//ListInsert_Sq;

int ListDelete_Sq(SqList *L, int i, int e) {  
  // 鍦ㄩ『搴忕嚎鎬ц〃L涓垹闄ょi涓厓绱狅紝騫剁敤e榪斿洖鍏跺箋?br>  // i鐨勫悎娉曞間負1≤i≤ListLength_Sq(L)銆?br>  int *p, *q;
  if (i<1 || i>L->length) return ERROR;  // i鍊間笉鍚堟硶
  p = &(L->elem[i-1]);                   // p涓鴻鍒犻櫎鍏冪礌鐨勪綅緗?br>  e = *p;                               // 琚垹闄ゅ厓绱犵殑鍊艱祴緇檈
  q = L->elem+L->length-1;                // 琛ㄥ熬鍏冪礌鐨勪綅緗?br>  for (++p; p<=q; ++p) *(p-1) = *p;     // 琚垹闄ゅ厓绱犱箣鍚庣殑鍏冪礌宸︾Щ
  --L->length;                           // 琛ㄩ暱鍑?
  return OK;
} // ListDelete_Sq

int display_all(SqList *L)
{
    int i;
    for(i=0;i<L->length;i++)
    {
        printf("%d",L->elem[i]);
        printf(" ");
    }
    return OK;
}
int main()
{
    SqList L;
    int get,e=0;
    int i,num;
    InitList_Sq(&L);
    do{
    printf("璇瘋緭鍏ヤ綘瑕佽繘琛岀殑鎿嶄綔搴忓彿\n");
    printf("1.綰挎ц〃緗┖\n");
    printf("2.姹傜嚎鎬ц〃闀垮害\n");
    printf("3.鏁版嵁鍏冪礌鐨勬彃鍏ユ搷浣淺n");
    printf("4.鏁版嵁鍏冪礌鐨勫垹闄ゆ搷浣淺n");
    printf("5.鏄劇ず綰挎ц〃涓殑鍏ㄩ儴鍏冪礌\n");
    printf("6.閫鍑篭n");
    scanf("%d",&get);
    switch(get)
    {
    case 1:
          destroy(&L);//灝嗛『搴忚〃緗┖錛屽彧闇瑕佸皢鍏墮暱搴︾疆闆?br>          break;
    case 2:
          printf("璇ョ嚎鎬ц〃鐨勯暱搴︽槸%d\n",get_length(&L)); //姹傚彇綰挎ц〃鐨勯暱搴?br>          break;
    case 3:
          //鍦ㄦ寚瀹氱殑浣嶇疆涓婃彃鍏ユ寚瀹氱殑鏁版嵁鍏冪礌
          printf("璇瘋緭鍏ヤ綘瑕佹彃鍏ョ殑鍏冪礌鐨勪綅緗紙鍗沖湪絎琲涓厓绱犱箣鍓嶆彃鍏ワ級浠ュ強鎻掑叆鍏冪礌\n");
          scanf("%d,%d",&i,&num);
          ListInsert_Sq(&L,i,num);
          printf("鏂扮殑綰挎ц〃鏄痋n");
          display_all(&L);
          break;
    case 4:
        //鍒犻櫎鎸囧畾浣嶇疆鐨勬暟鎹厓绱?br>          printf("璇瘋緭鍏ヤ綘瑕佸垹闄ょ殑鍏冪礌鐨勪綅緗紙鍗沖垹闄ょi涓厓绱狅級\n");
          scanf("%d",&i);
          ListDelete_Sq(&L,i,e);
          printf("鏂扮殑綰挎ц〃鏄痋n");
          display_all(&L);
          break;
    case 5:
        //鏄劇ず綰挎ц〃鐨勬墍鏈夊厓绱?br>          display_all(&L);
          printf("\n");
          break;
    case 6:
        //閫鍑虹▼搴?br>          break;
    }
    }while(get!=6);
    return OK;
}


鍒樼晠 2009-11-27 21:35 鍙戣〃璇勮
]]>
鎻掑叆鎺掑簭鐨勬濇兂http://www.shnenglu.com/deercoder/articles/102106.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:30:00 GMThttp://www.shnenglu.com/deercoder/articles/102106.htmlhttp://www.shnenglu.com/deercoder/comments/102106.htmlhttp://www.shnenglu.com/deercoder/articles/102106.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102106.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102106.html1. 鐜板湪鏈変袱縐嶆柟娉曪紝涓縐嶆槸綆楁硶瀵艱涓殑錛屼竴縐嶆槸鏁版嵁緇撴瀯鐨勶紝浣嗘槸鎬諱綋鎬濇兂閮芥槸涓鑷寸殑銆?br>2.瀵逛簬姣忎竴涓猧錛堜粠1寮濮嬶紝鍗崇浜屼釜鍏冪礌錛屽叿浣撴槸澶氬皯涓嶇‘瀹氾級錛屽鏋渁[i]姣攁[i-1]灝忥紝灝辨槸姣斿墠闈㈢殑閭d釜灝忥紝鍒欒繘琛岀浉搴旂殑鎿嶄綔錛屽惁鍒欎笉鍙橈紝閫掑涓嬪幓銆?br>3.姣忔閮藉皢a[i]璧嬪肩粰key錛屽叧閿瓧key錛屽疄闄呬笂姣忔閮借繘琛屾瘮杈冿紝鍏堣祴鍊肩粰key錛屽疄闄呬笂灝辨槸淇濈暀榪欎釜鏁幫紝鐒跺悗灝嗗墠闈㈢殑涓涓暟縐誨姩鍒板悗闈紝榪欎釜鏄鍏堢殑鎿嶄綔銆?br>4.涓嬮潰鏄浜庡叿浣撶殑姣忎竴涓猭ey鏉ュ畾浣嶏紝姣忔閮借縐誨姩錛?#8230;………………………
娉ㄦ剰鏈鍚庤璧嬪間笅鍘匯?br>

……………………綺劇涔嬪鍦ㄤ簬璧嬪煎拰淇濆瓨a[i]


鍒樼晠 2009-11-27 21:30 鍙戣〃璇勮
]]>
鎻掑叆鎺掑簭http://www.shnenglu.com/deercoder/articles/102105.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:29:00 GMThttp://www.shnenglu.com/deercoder/articles/102105.htmlhttp://www.shnenglu.com/deercoder/comments/102105.htmlhttp://www.shnenglu.com/deercoder/articles/102105.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102105.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102105.html
int Insert_sort(int *p,int length)
{
    int i,j,key;
    for(i=1;i<=(length-1);i++)
    {
       if(*(p+i)<*(p+i-1))
       {
           key=*(p+i);
           *(p+i)=*(p+i-1);
           for(j=i-1;j>=0 &&key<*(p+j);--j)
           {
               *(p+j)=*(p+j-1);
           }
           *(p+j+1)=key;
       }
    }

    return 0;
}

int main()
{
    int a[10]={0,4,1,9,5,7,2,3,6,8};
    int i;
    int *p=&a[0];
    Insert_sort(p,10);
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
}


閫氳繃鎸囬拡璋冪敤鐨勫艦寮忔潵鏀瑰彉鍘熸潵鏁扮粍涓殑鍊鹼紝榪欐牱灝卞彲浠ヤ簡銆傝屾瘡涓涓暟緇勫厓绱犻兘鍙互鐢ㄦ寚閽堝姞浣嶇Щ閲忔潵紜畾

#include<stdio.h>
void main()
{
    
int i,j;
    
//a[0]涓哄摠鍏碉紝鎵浠ュ畠鐨勫奸殢渚匡紝浣嗘槸娉ㄦ剰瑕佹帓搴忕殑鏄悗闈㈢殑鍑犱釜錛岃屼笖闀垮害涔熸槸鍚庨潰鐨勫嚑涓?/span>
    int a[11]={0,1,2,4,9,0,3,8,6,7,5};
    
//鎻掑叆鎺掑簭
    for(i=2;i<=10;++i)
    
{
       
if(a[i]<a[i-1])
       
{
           a[
0]=a[i];        //宸茬粡淇濆瓨浜哸[i],鎵浠ヤ笅闈㈠氨涓嶅繀鎷呭績琚啿鎺夈?/span>
           a[i]=a[i-1];
           
for(j=i-2;a[0]<a[j];--j)
           
{
               a[j
+1]=a[j];
           }

           a[j
+1]=a[0];
       }


    }

    
for(i=1;i<11;i++)              //浠巃[1]寮濮嬭緭鍑猴紝榪欐牱鎵嶆秷闄や簡鍝ㄥ叺銆?/span>
    {
        printf(
"%d ",a[i]);
    }

}



娉ㄦ剰鐪熸鐨勬帓搴忛儴鍒嗘槸浠巃[
1]寮濮嬬殑錛岃繕鏈夐暱搴ength涓嶆槸鏁扮粍鐨勯暱搴︼紝鑰屾槸瀹為檯瑕佹帓搴忕殑闀垮害錛岃繖閲屾妸a[i]鍐叉帀鐨勬楠ゅ緢濂斤紝鑰屼笖娌℃湁褰卞搷錛屽洜涓哄凡緇忎繚瀛樹笅鏉ヤ簡銆?br>
--------------------銆婃暟鎹粨鏋?nbsp;        涓ヨ敋鏁忕増銆?br>


 1#include<stdio.h>
 2void main()
 3{
 4    int a[10]={0,4,1,9,5,7,2,3,6,8};
 5    int key,i,j;
 6    for(i=1;i<=9;i++)
 7    {
 8        if(a[i]<a[i-1])
 9        {
10            key=a[i];
11            a[i]=a[i-1];
12            for(j=i-1;j>=0 && key<a[j];--j)
13            {
14                a[j]=a[j-1];
15            }

16           a[j+1]=key;
17        }

18    }

19         for(i=0;i<10;i++)
20         {
21             printf("%d ",a[i]);
22         }

23}

24


鍒樼晠 2009-11-27 21:29 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯-----綆鍗曠殑鎻掑叆http://www.shnenglu.com/deercoder/articles/102104.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:28:00 GMThttp://www.shnenglu.com/deercoder/articles/102104.htmlhttp://www.shnenglu.com/deercoder/comments/102104.htmlhttp://www.shnenglu.com/deercoder/articles/102104.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102104.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102104.html//涓や釜琛ㄦ棤搴忎篃鍙紝鍙槸鎻掑叆灝卞彲浠ャ?br>#include<stdio.h>
int compare(int e,int *a,int length)
{
    int i;
    for(i=0;i<length;i++)
    {
        if(e==*(a+i))
            return 1;
        else
            continue;
    }
    return 0;
}
int main()
{
    int i,j;
    int length_a=10; //瀹氫箟a鐨勫疄闄呴暱搴︼紝鍓╀綑絀洪棿鐢ㄦ潵濉厖銆?br>    int a[20]={0,1,2,3,4,5,6,7,8,9};
    int b[10]={2,4,11,23,34,21,12,8,9,10};
    for(i=0,j=0;i<10;i++)
    {
        if(!compare(b[i],a,10))
        {
            a[10+j]=b[i];
            j++;
        }
          
        else
            continue;
    }
    for(i=0;i<j+length_a;i++)
    {
       printf("%d ",a[i]);
    }
    printf("\n");
   return 0;
}


鍒樼晠 2009-11-27 21:28 鍙戣〃璇勮
]]>
瀹炵幇涓涓畝鍗曠殑榪涘埗杞崲http://www.shnenglu.com/deercoder/articles/102103.html鍒樼晠鍒樼晠Fri, 27 Nov 2009 13:27:00 GMThttp://www.shnenglu.com/deercoder/articles/102103.htmlhttp://www.shnenglu.com/deercoder/comments/102103.htmlhttp://www.shnenglu.com/deercoder/articles/102103.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/102103.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/102103.html//鍙槸鍒╃敤浜嗗爢鏍堢殑鎬ц川錛屽疄闄呬笂鏍規湰涓嶆槸
//鍒╃敤鍫嗘爤鐨勬ц川瀹炵幇灝嗕竴涓崄榪涘埗杞崲鎴愮浉搴旂殑榪涘埗琛ㄧず銆?br>#include<stdio.h>
int convert(int a,int N,int *num)
{
    int count=0;
    while(a!=0)
    {
        *(num+count)=a%N;
        a=a/N;
        count++;        
    }
    return count;
}
int main()
{
    int num[10],i,N;
    int a,count,get;
    int *p=&count;
    printf("璇瘋緭鍏ヤ綘瑕佽漿鎹㈢殑鍗佽繘鍒舵暟\n");
    scanf("%d",&a);
    printf("璇瘋緭鍏ヤ綘瑕侀夋嫨鐨勮繘鍒禱n");
    printf("1.浜岃繘鍒禱n");
    printf("2.鍏繘鍒禱n");
    scanf("%d",&N);
    get=a;
    if(N==1)
        count=convert(a,2,num);   //杈撳叆鐨凬鍜屼綘瑕佽漿鎹㈢殑榪涘埗涓嶆槸鍚屼竴涓?br>    if(N==2)
        count=convert(a,8,num);
    printf("%d鐨?d榪涘埗琛ㄧず鏄痋n",get,N);
    for(i=count-1 ; i>=0 ; i--)  //寮濮嬬殑鏃跺欏偦×錛岀敤鐨勬槸i<0,鑲畾閮戒笉婊¤凍鍟婏紝鎵浠ュ畬鍏ㄦ病鏈夎緭鍑恒?br>    {
        printf("%d",*(num+i));
    }
    printf("\n");
}

娉ㄦ剰16榪涘埗灝變笉鍙敤錛屽師鍥犳槸瓚呰繃10鐨勬暟灝辮鐢ㄥ瓧姣嶈〃紺猴紝浼氬嚭閿欑殑銆?br>

鍒樼晠 2009-11-27 21:27 鍙戣〃璇勮
]]>
浜屽弶鎺掑簭鏍戠殑鍚勭鎿嶄綔瀹炵幇http://www.shnenglu.com/deercoder/articles/100965.html鍒樼晠鍒樼晠Sun, 15 Nov 2009 03:54:00 GMThttp://www.shnenglu.com/deercoder/articles/100965.htmlhttp://www.shnenglu.com/deercoder/comments/100965.htmlhttp://www.shnenglu.com/deercoder/articles/100965.html#Feedback0http://www.shnenglu.com/deercoder/comments/commentRss/100965.htmlhttp://www.shnenglu.com/deercoder/services/trackbacks/100965.html#include <iostream>
#include <iomanip>
using namespace std;

typedef struct BinaryTree
{
 int data;
 struct BinaryTree *l;
 struct BinaryTree *r;
}*BiTree,BiNode;
 
class BiSearchT
{
private:
 BiTree root;
public:
 BiSearchT() :root(NULL) {}
 int PreOrderTraverse(BiTree t,int (*Visit)(int e));
 int InOrderTraverse(BiTree t,int (*Visit)(int e));
 int InsertBST(BiTree *t,int e);
 void Delete(BiTree *p);
 bool DeleteBST(BiTree *t,int key);
 bool SearchBST(BiTree t,int key,BiTree f,BiTree *p);
};
//鍏堝簭閬嶅巻浜屽弶鏍慣
int BiSearchT::PreOrderTraverse(BiTree t,int (*Visit)(int d))
{
 if(t)
 {
  if(Visit(t->data))
   if(PreOrderTraverse(t->l,Visit))
    if(PreOrderTraverse(t->r,Visit)) return 1;
    return 0;
    }else return 1;
}
//涓簭閬嶅巻浜屽弶鏍慣
int BiSearchT::InOrderTraverse(BiTree t,int (*Visit)(int d))
{
 if(t)
 {
  if(InOrderTraverse(t->l,Visit))
   if(Visit(t->data))
    if(InOrderTraverse(t->r,Visit)) return 1;
    return 0;
    }else return 1;
}
//浜屽弶鎺掑簭鏍戜笂鐨勬煡鎵鵑掑綊綆楁硶
bool BiSearchT::SearchBST(BiTree t,int key,BiTree f,BiTree *p)
{
 if(!t)
  {*p=f;return false;}
  else if(key==t->data) {*p=t;return true;}
  else if(key<t->data) SearchBST(t->l,key,t,p);
  else SearchBST(t->r,key,t,p);
}
//鎻掑叆綆楁硶
int BiSearchT::InsertBST(BiTree *t,int e)
{
 BiTree p;
 BiTree s;
 if(!SearchBST(*t,e,NULL,&p))
 {
  s=(BiTree)malloc(sizeof(BiNode));
  s->data=e;s->l=s->r=NULL;
  if(!p) *t=s;
  else if(e<p->data) p->l=s;
  else p->r=s;
  return true;
 }
 else return false;
}
//鍦ㄤ簩鍙夋爲涓垹闄や竴涓粨鐐?br>void BiSearchT::Delete(BiTree *p)
{
 BiTree q,s;
 if(!(*p)->r)
 {
  q=(*p);
  (*p)=(*p)->l;
  free(q);
 }
 else if(!(*p)->l)
 {
  q=(*p);
  (*p)=(*p)->r;
  free(q);
 }
 else
 {
  q=s=(*p)->l;
  while(s->r) s=s->r;
  s->r=(*p)->r;
  free(*p);
  (*p)=q;
 }
}
//浜屽弶鎺掑簭鏍戠殑鍒犻櫎
bool BiSearchT::DeleteBST(BiTree *t,int key)
{
 if(*t!=NULL)
 {
  if(key==(*t)->data) Delete(t);
  else
   if(key<(*t)->data) DeleteBST(&((*t)->l),key);
   else DeleteBST(&((*t)->r),key);
   return true;
 }
   else return false;
}
//杈撳嚭浜屽弶鎺掑簭鏍戠殑鏁版嵁鍦板煙鍊?br>int printelem(int d)
{
 cout<<setw(4)<<d;
 return 1;
}

void main()
{
 BiTree sroot=NULL;
 BiTree Croot=NULL;
 int q,c,d,e,f,g,h,l,m,x;
 cout<<"..............................浜屽弶鎺掑簭鏍戠殑鍩烘湰鎿嶄綔.............................."<<endl;
 cout<<"璇鋒偍杈撳叆鍗佷釜姝f暣鏁頒綔涓轟簩鍙夋帓搴忔爲鐨勫崄涓粨鐐?"<<endl;
 cin>>q>>c>>d>>e>>f>>g>>h>>l>>m>>x;
 int i,j,k,a[10]={q,c,d,e,f,g,h,l,m,x};
 int n=7,b[]={10,7,6,9,20,12,22};
 BiSearchT my;
 for(i=0;i<10;i++)
  my.InsertBST(&sroot,a[i]);
 cout<<"浜屽弶鎺掑簭鏍戝垱寤烘垚鍔?"<<endl;
    cout<<"鍏堝簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
 my.PreOrderTraverse(sroot,printelem);
 cout<<endl;
 cout<<"涓簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
 my.InOrderTraverse(sroot,printelem);
 cout<<endl;
    cout<<"璇瘋緭鍏ヤ綘瑕佹煡鎵劇殑鍏冪礌:";
 cin>>i;
 if(i==q||i==c||i==d||i==e||i==f||i==g||i==h||i==l||i==m||i==x)
  cout<<"鏌ユ壘鎴愬姛!"<<endl;
 else cout<<"鏌ユ壘澶辮觸!"<<endl;
 cout<<"璇瘋緭鍏ヤ綘瑕佸垹闄ょ殑鍏冪礌(...杈撳叆鐨勫厓绱犲繀欏誨湪浜屽弶鎺掑簭鏍戜腑...):";
 cin>>j;
 my.DeleteBST(&sroot,j);
 cout<<"鍏堝簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
 my.PreOrderTraverse(sroot,printelem);
 cout<<endl;
 cout<<"涓簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
    my.InOrderTraverse(sroot,printelem);
 cout<<endl;
    cout<<"鍦ㄦ鍩虹涓婅杈撳叆浣犺鎻掑叆鐨勫厓绱?";
 cin>>k;
 my.InsertBST(&sroot,k);
    cout<<"鍏堝簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
 my.PreOrderTraverse(sroot,printelem);
 cout<<endl;
 cout<<"涓簭閬嶅巻浜屽弶鎺掑簭鏍?"<<endl;
    my.InOrderTraverse(sroot,printelem);
 cout<<endl;
}



鍒樼晠 2009-11-15 11:54 鍙戣〃璇勮
]]>
色婷婷综合久久久久中文| 国产亚洲精久久久久久无码AV| 天天综合久久久网| 国产精品青草久久久久婷婷| 麻豆成人久久精品二区三区免费| 久久久久久精品成人免费图片| 亚洲国产成人久久综合野外| 亚洲国产精品成人AV无码久久综合影院 | 久久激情亚洲精品无码?V| 久久精品一区二区国产| 久久久久中文字幕| 精品视频久久久久| 亚洲欧美国产精品专区久久| 国产精品99久久久久久宅男小说| 国内精品伊人久久久久妇| 亚洲日韩中文无码久久| 99久久免费国产特黄| 26uuu久久五月天| 久久亚洲高清综合| 中文字幕久久久久人妻| 久久精品一区二区国产| 久久久99精品成人片中文字幕| 久久影视综合亚洲| 97精品依人久久久大香线蕉97| 久久久无码人妻精品无码| 久久996热精品xxxx| 国产精品久久新婚兰兰| 97久久天天综合色天天综合色hd| 青青草原综合久久大伊人精品| 久久综合色区| 精品综合久久久久久888蜜芽| 国产精品亚洲综合专区片高清久久久 | 99久久精品国产综合一区| 性做久久久久久久久浪潮| 99精品国产在热久久无毒不卡| 久久精品国产WWW456C0M| 青草国产精品久久久久久| 久久综合伊人77777| 91精品国产高清久久久久久io| 香蕉aa三级久久毛片| 久久最近最新中文字幕大全|