3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
Visit函數(shù)是對(duì)數(shù)據(jù)元素操作的具體函數(shù)。
void Visit(TNode *node)
{
cout<<node->value<<" ";
}
這樣的樣子;或者,比如要交換每個(gè)節(jié)點(diǎn)的左右子樹,那就是:
void Visit(TNode *node){
TNode *temp = node->left。
node->left = node->right。
node->right = temp。
比如要先序遍歷,肯定要輸出樹上每個(gè)節(jié)點(diǎn)的數(shù)值吧。輸出函數(shù)就可以寫在Visit函數(shù)中的。那樣程序運(yùn)行之后,就可以輸出二叉樹的先序遍歷了。
擴(kuò)展資料:
線性表的雙向鏈表存儲(chǔ)結(jié)構(gòu):
typedef struct DuLNode{
ElemType data;
struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;
帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表的基本操作:
void InitList(DuLinkList L)
{ /* 產(chǎn)生空的雙向循環(huán)鏈表L */
L=(DuLinkList)malloc(sizeof(DuLNode));
if(L)
L->next=L->prior=L;
elseexit(OVERFLOW);}
重置鏈表為空表:
void ClearList(DuLinkList L) /* 不改變L */
{ DuLinkList q,p=L->next; /* p指向第一個(gè)結(jié)點(diǎn) */
while(p!=L) /* p沒到表頭 */{q=p->next;free(p);p=q;}L->next=L->prior=L; /*頭結(jié)點(diǎn)的兩個(gè)指針域均指向自身 */}
驗(yàn)證是否為空表:
Status ListEmpty(DuLinkList L){ /* 初始條件:線性表L已存在
if(L->next==L&&L->prior==L)
return TRUE;
elsereturn FALSE;}

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
那里面的Visit()函數(shù)其實(shí)就是隨便的什么訪問(wèn)動(dòng)作都可以,比如printf()函數(shù),但編者怕讀者誤以為遍歷時(shí)只能使用printf或者其它的某一種函數(shù),而不是什么都可以才寫了一個(gè)從字面上理解就是訪問(wèn)的函數(shù)來(lái)表示,并不是什么特定的代碼段的
添加回答
舉報(bào)