樹林c語言
『壹』 全國計算機四級網路
先在google裡面搜"標題:全國計算機等級考試四級網路工程師模擬試題1-16套" 然後,在出來的網站裡面找.
那裡面有一個是51cto這個網站的.
大家進去,注冊一個帳號.就可以下載.
不過要用右鍵另存為.好像有迅雷下載不了.
『貳』 請大神用c語言幫編一個關於家譜的程序!要求:
杜樹林,你這樣做是不對的!!我是杜小坤老師!!以此為戒,殺雞儆猴,你數據結構課程設計掛了,別來9棟求我,求我也沒用!!
『叄』 國家開放大學 c語言機試題
是咖啡 i 無法為巨額服務費就好好計劃速度和網速吃唔記得我IE間諜無敵記得哈但是莪會成為IE車玩 i 成為電話 i到處是四川死亡 i 間諜無敵今晚 i大呼超過秤骨的好處是承諾爵士舞餓好的古文廣東烏俄從管委會廣場為 u 個成功u 是改革財務上顧此失彼從 v 和市場 v 也從不呵呵很多無辜成溫度剛好今晚廣東引發蠅營狗苟一個韓國豐功偉業如果服務業個反應更為u 還是我的感悟餓的廣告bhfwgygfrhg
『肆』 單片機用C編程,對C的要求很高么
先學匯騙吧..很容易的...之後再做做實驗...在其中再學習C語言,就不會有問題了...
一定要動手才能學好的...
『伍』 編程求解:光頭強偷伐樹木的那片樹林原來有多少棵樹用C編程
#include <iostream>
using namespace std;
int main()
{
int N;
cin>>N;
int i=0,b=1;
while(i<(N-1))
{
i++;
b=b*2+2;
}
cout<<b<<endl;
}
『陸』 網路語言目前有多少個
網路語言什麼意思?是問的電腦語言么?大致說來,從人的易用性來分,電腦語言好用程度從易到難可以分為三類,一類是低級語言,如匯編語言、機器語言;一類是中級語言,如C語言;還有一類為高級語言,如VB等等。很多的。
『柒』 switch是什麼意思
語法標註解釋 switch英音:[switʃ]美音:[swɪtʃ]
以下結果由譯典通提供詞典解釋
名詞 n. [C]
1.開關,電閘,電鍵
You pressed the wrong switch.
你按錯了開關。
2.(鐵路的)轉轍器;【美】鐵道側線
3.(樹林)柔軟的細枝;鞭子
4.變更,轉換,更改
There's been a switch in our plans.
我們的計劃改變了。
5.【口】調換,交換
I asked him why he'd made the switch.
我問他為什麼要調換。
6.(女用)長假發;(獅子等的)尾尖簇毛
http://dict..com/s?wd=switch
『捌』 c語言數據結構求森林的深度的遞歸演算法
d1代表,如果不是這個第一個左孩子不是空樹,它就會一直找下去,直到找到最後,記下左孩子的深度
d2代表,如果不是這個第一個右孩子不是空樹,它就會一直找下去,直到找到最後,記下右孩子的深度
當然每次都會返回的左右深度的最大值,因為你要找的是森林的深度。
如果你不明白的話,你可以看一個比較簡單的,就是求樹的深度,再簡單的就是求二叉樹的深度,當這些深度你都會求了,森林的自然而然就會了。呵呵呵
不知道對你有沒有幫助啊
『玖』 《森林與二叉樹的轉換》C語言代碼
#include<stdio.h>
#include<malloc.h>
#define DEGREE 5 //樹的高度
#define NULL 0
#define QUEUESIZE 10
#define MAX_NODE_NUM 100
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@樹和二叉樹的結構體@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
typedef struct st1//樹節點的類型
{
char data;//數據域,採用char星
struct st1 *children[DEGREE];//指向孩子節點的指針域
}CTreeNode;
typedef struct st2
{
char data;//數據域
struct st2 *lchild,*rchild;//左右孩子節點的指針
}BTreeNode;
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@查找樹的節點@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
CTreeNode *SearchCTree(CTreeNode *root ,char data)
{
int i;
CTreeNode *returnNode;
if(root->data==data)
return root;
else
{
for(i=0;i<DEGREE;i++)
{
if(root->children[i]==NULL)
return NULL;
else
{
returnNode=SearchCTree(root->children[i],data);//遞歸查找
if(returnNode!=NULL)
return returnNode;
}
}
}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@生成樹@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
CTreeNode *CreateSTree()
{
int i,j,k;
char data, parent;;
CTreeNode *root,*parentNode,*node;
printf("請輸入樹的節點的數量:");
scanf("%d",&j);
fflush(stdin);//清除鍵盤緩存
if(j==0)
return NULL;//空樹,結束函數
printf("請輸入根節點的數據:");
scanf("%c",&data);
fflush(stdin);
root=(CTreeNode *)malloc(sizeof(CTreeNode));
root->data=data;
for(i=0;i<DEGREE;i++)
root->children[i]=NULL;
for(i=2;i<=j;i++)//依次輸入每個節點的信息
{
printf("請輸入第%d個節點的數據及其父節點的數據:",i);
scanf("%c%c",&data,&parent);//切記當以%c號格式輸入數據時候,不要輸入空格
fflush(stdin);
node=(CTreeNode *)malloc(sizeof(CTreeNode));
node->data=data;
for(k=0;k<DEGREE;k++)
node->children[k]=NULL;
//printf("驗證parent=%c\n",parent);
parentNode=SearchCTree(root,parent);//查找指定數據的節點
for(k=0;k<DEGREE;k++)
{
if(parentNode->children[k]==NULL)
{
parentNode->children[k]=node;
break;
}
}
}
return root;
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@樹的遍歷@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
void preorderTree(CTreeNode *ctroot)//遍歷每個節點的操作就是輸出該節點的data域
{
CTreeNode *ctchild;
int i;
printf("%c",ctroot->data);//先遍歷根節點
for(i=0;i<DEGREE;i++)//依次先序遍歷孩子節點
{
ctchild=ctroot->children[i];
if(ctchild==NULL)
break;//孩子節點遍歷結束,退出
else
preorderTree(ctchild);//遞歸先序遍歷
}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@結構體類型@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//樹隊列結構體類型
typedef struct nodeCTree
{
CTreeNode *CTreeArray[MAX_NODE_NUM];//結構體指針數組,存放節點的地址
//struct nodeCTree *next;
int CTreeFront,CTreeRear;
}QueueCTree;
//二叉樹隊列結構類型
typedef struct nodeBTree
{
BTreeNode *BTreeArray[MAX_NODE_NUM];//結構體指針數組,存放節點的地址
//struct nodeBTree *next;
int BTreeFront,BTreeRear;
}QueueBTree;
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@初始化隊列@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//初始化樹隊列
void initQueueCTree(QueueCTree *&q)
{
q=(QueueCTree *)malloc(sizeof(QueueCTree));
q->CTreeFront=q->CTreeRear=0;
}
//初始化二叉樹隊列
void initQueueBTree(QueueBTree *&q)
{
q=(QueueBTree *)malloc(sizeof(QueueBTree));
q->BTreeFront=q->BTreeRear=0;
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@入隊列@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//樹隊列元素入隊
int addQueueCTree(QueueCTree *&q,CTreeNode *ctroot)//
{
if((q->CTreeRear+1)%MAX_NODE_NUM==q->CTreeFront)//隊滿
return 0;
q->CTreeRear=(q->CTreeRear+1)%MAX_NODE_NUM;
q->CTreeArray[q->CTreeRear]=ctroot;
return 1;//入隊列
}
//二叉樹隊列元素入隊
int addQueueBTree(QueueBTree *&q,BTreeNode *btroot)
{
if((q->BTreeRear+1)%MAX_NODE_NUM==q->BTreeFront)//隊滿
return 0;
q->BTreeRear=(q->BTreeRear+1)%MAX_NODE_NUM;
q->BTreeArray[q->BTreeRear]=btroot;
return 1;//入隊列
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@隊列判空@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//樹的隊列判空
int QueueCTreeEmpty(QueueCTree *q)
{
return(q->CTreeFront==q->CTreeRear);
}
//二叉樹隊列判空
int QueueBTreeEmpty(QueueBTree *q)
{
return(q->BTreeFront==q->BTreeRear);
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@出隊列@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//樹隊列元素出隊
CTreeNode *delQueueCTree(QueueCTree *&q)
{
CTreeNode *ctroot;
if(q->CTreeFront==q->CTreeRear)//隊空
return NULL;//返回空指針
q->CTreeFront=(q->CTreeFront+1)%MAX_NODE_NUM;
ctroot=q->CTreeArray[q->CTreeFront];
return ctroot;//返回節點
}
//二叉樹隊列元素出隊
BTreeNode *delQueueBTree(QueueBTree *&q)
{
BTreeNode *btroot;
if(q->BTreeFront==q->BTreeRear)//隊空
return NULL;//返回空指針
q->BTreeFront=(q->BTreeFront+1)%MAX_NODE_NUM;
btroot=q->BTreeArray[q->BTreeFront];
return btroot;//返回節點
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@樹轉化為二叉樹@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
void TreeToBTree(CTreeNode *ctroot,BTreeNode *&btroot)//樹轉化為二叉樹ctroot指向樹的根節點,btroot,指向二叉樹的跟
{
QueueCTree *VisitedCTreeNodes;
QueueBTree *VisitedBTreeNodes;//輔助隊列
initQueueCTree(VisitedCTreeNodes);
initQueueBTree(VisitedBTreeNodes);//初始化隊列
CTreeNode *ctnode;
BTreeNode *btnode,*p,*LastSibling;
int i;
btroot=(BTreeNode *)malloc(sizeof(BTreeNode));//添加開辟內存空間語句
btroot->data=ctroot->data;//樹的根節點作為二叉樹的根節點
btroot->lchild=btroot->rchild=NULL;
addQueueCTree(VisitedCTreeNodes,ctroot);//樹的跟節點入隊
addQueueBTree(VisitedBTreeNodes,btroot);//二叉樹的跟節點入隊
while(!QueueCTreeEmpty(VisitedCTreeNodes))
{
ctnode=delQueueCTree(VisitedCTreeNodes);//樹節點出隊
btnode=delQueueBTree(VisitedBTreeNodes);//二叉樹節點出隊
for(i=0;i<DEGREE;i++)//訪問節點所有的孩子節點
{
if(ctnode->children[i]==NULL)//孩子節點訪問完畢
break;
p=(BTreeNode *)malloc(sizeof(BTreeNode));//分配二叉樹節點
p->data=ctnode->children[i]->data;
p->lchild=p->rchild=NULL;
if(i==0)
btnode->lchild=p;//長子,作為父節點的做孩子
else
LastSibling->rchild=p;//作為上一個兄弟節點的右孩子
LastSibling=p;
addQueueCTree(VisitedCTreeNodes,ctnode->children[i]);//樹節點進隊列
addQueueBTree(VisitedBTreeNodes,p);//二叉樹節點進門隊列
}
}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@二叉樹的遍歷@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
void Preorder(BTreeNode *T)
{
if(T)
{
printf("%2c",T->data);
Preorder(T->lchild);
Preorder(T->rchild);
}
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@主函數調用@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
int main()
{
CTreeNode *Tree;
BTreeNode *BTree;
printf("創建一棵樹\n");
Tree=CreateSTree();
printf("樹的先序遍歷結果為:");
preorderTree(Tree);
printf("\n");
TreeToBTree(Tree,BTree);
printf("轉換後的二叉樹,先序遍歷的結果為:");
Preorder(BTree);
printf("\n");
return 0;
}