3 回答
TA貢獻1796條經驗 獲得超10個贊
Visit函數是對數據元素操作的具體函數。
void Visit(TNode *node)
{
cout<<node->value<<" ";
}
這樣的樣子;或者,比如要交換每個節點的左右子樹,那就是:
void Visit(TNode *node){
TNode *temp = node->left。
node->left = node->right。
node->right = temp。
比如要先序遍歷,肯定要輸出樹上每個節點的數值吧。輸出函數就可以寫在Visit函數中的。那樣程序運行之后,就可以輸出二叉樹的先序遍歷了。
擴展資料:
線性表的雙向鏈表存儲結構:
typedef struct DuLNode{
ElemType data;
struct DuLNode *prior,*next;
}DuLNode,*DuLinkList;
帶頭結點的雙向循環鏈表的基本操作:
void InitList(DuLinkList L)
{ /* 產生空的雙向循環鏈表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指向第一個結點 */
while(p!=L) /* p沒到表頭 */{q=p->next;free(p);p=q;}L->next=L->prior=L; /*頭結點的兩個指針域均指向自身 */}
驗證是否為空表:
Status ListEmpty(DuLinkList L){ /* 初始條件:線性表L已存在
if(L->next==L&&L->prior==L)
return TRUE;
elsereturn FALSE;}
TA貢獻1848條經驗 獲得超10個贊
那里面的Visit()函數其實就是隨便的什么訪問動作都可以,比如printf()函數,但編者怕讀者誤以為遍歷時只能使用printf或者其它的某一種函數,而不是什么都可以才寫了一個從字面上理解就是訪問的函數來表示,并不是什么特定的代碼段的
添加回答
舉報

