第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

作業(yè)社區(qū)

探索學習新天地,共享知識資源!

0 提交作業(yè)
0 布置作業(yè)
0 滿分作業(yè)
得分 98
學習任務

RX0_UNICORN 的學生作業(yè):

// linkstack.h #ifndef __LINKSTACK_H__ #define __LINKSTACK_H__ #include #include #include #include "bitree.h" typedef bitree_t *datatype_t; // 節(jié)點類型 typedef struct node { datatype_t data; struct node *next; }linknode_t; // 棧頭類型 typedef struct { linknode_t *top; // 棧頂指針 int n; // 記錄當前棧中元素的個數(shù) }linkstack_t; extern linkstack_t *create_empty_linkstack(); extern int is_empty_linkstack(linkstack_t *ls); extern void push_linkstack(linkstack_t *ls, datatype_t data); extern datatype_t pop_linkstack(linkstack_t *ls); extern datatype_t get_top_data(linkstack_t *ls); #endif // linkstack.c #include "linkstack.h" linkstack_t *create_empty_linkstack() { linkstack_t *ls = NULL; ls = (linkstack_t *)malloc(sizeof(linkstack_t)); if(NULL == ls) { printf("malloc linkstack_t *ls is fail!\n"); return NULL; } memset(ls, 0, sizeof(linkstack_t)); return ls; } // 判空 int is_empty_linkstack(linkstack_t *ls) { return ls->top == NULL ? 1 : 0; } // 入棧 void push_linkstack(linkstack_t *ls, datatype_t data) { linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp) { printf("malloc linknode_t *temp is fail!\n"); return; } temp->data = data; // 將節(jié)點數(shù)據(jù)插入棧中 temp->next = ls->top; ls->top = temp; // 更新n 的值 ls->n++; return; } datatype_t pop_linkstack(linkstack_t *ls) { linknode_t *temp = NULL; datatype_t data; // 保存要刪除的節(jié)點地址 temp = ls->top; // 取出數(shù)據(jù) data = temp->data; // 更新頭部指針 ls->top = temp->next; // 釋放 temp free(temp); temp = NULL; // 更新 n 的值 ls->n--; return data; } // 輸出棧頂元素 datatype_t get_top_data(linkstack_t *ls) { return ls->top->data; } // bitree.h #ifndef __BITREE_H__ #define __BITREE_H__ #include #include #include #define N 6 typedef char data_t; typedef struct bitree { int n; data_t data; struct bitree *lchild; struct bitree *rchild; }bitree_t; extern bitree_t *create_empty_bitree(int n); extern void pre_order(bitree_t *bt); extern void in_order(bitree_t *bt); extern void post_order(bitree_t *bt); #endif // bitree.c #include "bitree.h" #include "linkstack.h" bitree_t *create_empty_bitree(int n) { bitree_t *bt = NULL; bt = (bitree_t *)malloc(sizeof(bitree_t)); if(NULL == bt) { printf("malloc bitree_t *bt is fail!\n"); return NULL; } memset(bt, 0, sizeof(bitree_t)); bt->n = n; bt->lchild = bt->rchild = NULL; printf("input %d node data : ", n); scanf("%c", &(bt->data)); // 清除緩存區(qū)數(shù)據(jù) while(getchar() != '\n'); // 左子節(jié)點存在條件 if(2 * n lchild = create_empty_bitree(2 * n); } // 右子節(jié)點存在條件 if(2 * n + 1 rchild = create_empty_bitree(2 * n + 1); } return bt; } // 前序非遞歸遍歷 void pre_order(bitree_t *bt) { if(bt == NULL) return; linkstack_t *ls = create_empty_linkstack(); bitree_t *temp = bt; while(temp != NULL || !is_empty_linkstack(ls)) { while(temp != NULL) { printf("(%c : %d)", temp->data, temp->n); push_linkstack(ls, temp); temp = temp->lchild; } if(!is_empty_linkstack(ls)) { temp = pop_linkstack(ls); temp = temp->rchild; } } free(ls); return; } //中序遍歷 void in_order(bitree_t *root) { if(NULL == root) return ; linkstack_t *ls = create_empty_linkstack(); bitree_t *temp = root; while(temp != NULL || !is_empty_linkstack(ls)) { if(temp != NULL) { push_linkstack(ls, temp); temp = temp->lchild; } else { temp = pop_linkstack(ls); printf("(%c : %d)",temp->data,temp->n); temp = temp->rchild; } } free(ls); } //后序遍歷 void post_order(bitree_t *root) { if(NULL == root) return ; linkstack_t *ls = create_empty_linkstack(); bitree_t *pre = NULL; bitree_t *cur = NULL; push_linkstack(ls, root); while(!is_empty_linkstack(ls)) { cur = get_top_data(ls); // 以下情況,可以直接輸出值 // 左右孩子都為空 // 左右孩子存在,并且左孩子或右孩子都被訪問過 if((cur->lchild == NULL && cur->rchild == NULL) || (pre != NULL && (pre == cur->lchild || pre == cur->rchild))) { printf("(%c : %d) ",cur->data,cur->n); pop_linkstack(ls); pre = cur; } else { if(cur->rchild != NULL) { push_linkstack(ls, cur->rchild); } if(cur->lchild != NULL) { push_linkstack(ls, cur->lchild); } } } free(ls); return; } // main.c #include "bitree.h" int main(int argc, const char *argv[]) { bitree_t *bt = create_empty_bitree(1); printf("pre_order : "); pre_order(bt); printf("\n"); printf("in_order : "); in_order(bt); printf("\n"); printf("post_order : "); post_order(bt); printf("\n"); return 0; } 【圖片】

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號