?? tree_childlist.c
字號:
/* 樹的子表表示法*/
#include<stdio.h>
#define MAXNUM 20
typedef int DataType ;
struct EdgeNode { /* 子表中結(jié)點(diǎn)的結(jié)構(gòu) */
int nodeposition;
struct EdgeNode *link;
};
struct ChiTreeNode { /* 結(jié)點(diǎn)表中結(jié)點(diǎn)的結(jié)構(gòu) */
DataType info;
struct EdgeNode *children;
};
struct ChiTree { /* 樹結(jié)構(gòu) */
int n; /* 結(jié)點(diǎn)個(gè)數(shù) */
int root; /* 根結(jié)點(diǎn)的下標(biāo) */
struct ChiTreeNode nodelist[MAXNUM];
};
typedef struct ChiTree *PChiTree; /* 樹類型的指針類型 */
int rightSibling_chitree(PChiTree t, int p) {
int i;
struct EdgeNode *v;
for (i = 0; i < t->n; i++) {
v = t->nodelist[i].children;
while (v != NULL)
if (v->nodeposition == p)
if (v->link == NULL)
return -1;
else
return(v->link->nodeposition);
else
v = v->link;
}
return -1;
}
int parent_chitree(PChiTree t, int p) {
int i;
struct EdgeNode *v;
for (i = 0; i < t->n; i++) { /* 逐個(gè)檢查樹的各個(gè)結(jié)點(diǎn),是不是父結(jié)點(diǎn) */
v = t->nodelist[i].children;/* 若檢查的結(jié)點(diǎn)子表中有p,則返回值是該結(jié)點(diǎn)的位置 */
while (v!=NULL)
if (v->nodeposition == p)
return(i);
else
v = v->link;
}
return -1; /* 無父結(jié)點(diǎn),則返回值為-1 */
}
int main() {
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -