二叉樹的思路,查詢1000個成語中的某乙個成語。

2021-09-01 15:50:59 字數 1315 閱讀 4737

#include

#define max1 8800000 //準備查詢成語檔案的大小。

//把成語轉換為二進位制形式。

void tobinary(char *c,char *binaryarray) ;

int k = 0;

int i;

int j = 0;

while ('\0' != c[j])//乙個字乙個字的迴圈。

for (int kk = 0; kk<=7; ++kk)

}else

j++;}}

//定義自己的二叉樹。

typedef struct node

node;

//把二進位制生成樹的方法。

node *binarytotree(char res)else if ((res[flag]=='1')&&(tempp->right==null))else

}else

flag++;

}return p;

}int isintree(node *p,char c)else if((tempp->right!=null)&&(c[i]==tempp->right->data))else

}return result;

}void outputbinarytree_pre(node * head)

}int main()

fgets(filename, max1, fp);//讀取檔案內容。

char *res = malloc(max1);

//res 就是一會需要比較的那個包含10萬個二進位制的成語的字元陣列了。

tobinary(filename, res);//把檔案內容轉換為二進位制。用第二種方法來判斷。

//現在只需要查詢,看bijiao 是否在res 中就行了。res 中的資料是以逗號分割的。

//    printf("\nres===%s\n",res);

node *p = null;

p = (node *)malloc(sizeof(node));

p = binarytotree(res);

printf("\n**********==\n");

outputbinarytree_pre(p);

printf("\n**********==\n");

if (isintree(p, bijiao)) else

fclose(fp);

free(filename);

free(bijiao);

free(res);

return 0;

}

二叉樹 二叉樹的查詢

三種查詢方式 前序查詢 中序查詢 後序查詢。前序查詢 比較當前節點,如果是,返回查詢結果。如果不是就向左遞迴查詢,如果左邊沒有就向右邊遞迴查詢。設定no 5,針對該題,前序遍歷共4次。中序遍歷 先向左遞迴查詢,如果左子樹沒有,再比較當前節點,如果仍然不是則向右遍歷查詢。後序遍歷 先向左遞迴查詢,如果...

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...

二叉樹 二叉查詢樹

二叉樹 binary tree 一種樹型結構,每個節點最多擁有兩個節點。如下圖 幾種型別的二叉樹 1.full binary tree 每個節點的孩子數 是 0 或者 2.對高度沒有要求。如下圖 2.perfect binary tree 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...