为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
学习任务

SamstagBaron 的学生作业:

#include #include #include typedef struct node{ char value; struct node* left; struct node* right; }TreeNode; typedef TreeNode* data_t; typedef struct linknode{ data_t value; struct linknode* next; }linknode_t; typedef struct deque{ linknode_t * head; linknode_t* tail; }deq; linknode_t* createLinklistnode(data_t value){ linknode_t* res = (linknode_t*)malloc(sizeof(linknode_t)); res->value= value; res->next = NULL; return res; } deq* createDeque(){ deq* res = (deq*)malloc(sizeof(deq)); res->head = createLinklistnode(0); res->tail = res->head; return res; } void pushdeq(deq* mydeq,data_t value){ linknode_t* res = createLinklistnode(value); mydeq->tail->next =res; mydeq->tail = res; } data_t popdeq(deq* mydeq){ if(mydeq->head==mydeq->tail){ return 0; } linknode_t *res = mydeq->head->next; data_t ans = res->value; mydeq->head->next = res->next; if(NULL==mydeq->head->next){ mydeq->tail = mydeq->head; } free(res); return ans; } /* typedef struct node{ data_t value; struct node* left; struct node* right; }TreeNode; */ const int N = 6; TreeNode* buildTree(int n){ if(n>N){ return NULL; } TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode)); printf("Please input node %d's data\n",n); scanf("%c",&node->value); getchar(); node->left = buildTree(2*n); node->right = buildTree(2*n+1); return node; } int emptydeq(deq* mydeq){ return mydeq->head==mydeq->tail?1:0; } int main(){ deq* mydeq = createDeque(); TreeNode* head = buildTree(1); pushdeq(mydeq,head); while(0==emptydeq(mydeq)){ TreeNode* node = popdeq(mydeq); printf("%c ",node->value); if(node->left){ pushdeq(mydeq,node->left); } if(node->right){ pushdeq(mydeq,node->right); } free(node); } printf("\n"); return 0; } 【图片】

得分 100
讨论题

奔跑的人生 的学生作业:

stack.h // // Created by yanbo.zhang on 2025-02-25. // #ifndef _STACK_H #define _STACK_H #include #include #include #define MAX 12 typedef char datatype_t; typedef struct { datatype_t buf[MAX]; int top; } seqstack_t; extern seqstack_t *create_empty_seqstack(); extern int is_empty_seqstack(seqstack_t *s); extern int is_full_seqstack(seqstack_t *s); void push_seqstack(seqstack_t *s, datatype_t data); datatype_t pop_seqstack(seqstack_t *s); #endif //_STACK_H stack.c // // Created by yanbo.zhang on 2025-02-25. // #include "stack.h" seqstack_t * create_empty_seqstack(){ seqstack_t *s = NULL; s = (seqstack_t *)malloc(sizeof(seqstack_t)); if (NULL == s) { printf("create empty seqstack failed\n"); return NULL; } memset(s,0,sizeof(seqstack_t)); s->top = -1; return s; } int is_empty_seqstack(seqstack_t *s) { return s->top == -1 ? 1 : 0; } int is_full_seqstack(seqstack_t *s) { return s->top == MAX - 1 ? 1 : 0; } void push_seqstack(seqstack_t *s, datatype_t data) { s->buf[++s->top] = data; } datatype_t pop_seqstack(seqstack_t *s) { return s->buf[s->top--]; } main.c #include "stack.h" int main(void) { char arr[] = {'a','n','i','h','c',' ','e','v','o','l',' ','I'}; seqstack_t *s = create_empty_seqstack(); for (int i = 0; i < MAX; i++) { if(!is_full_seqstack(s)) { push_seqstack(s, arr[i]); } } while (!is_empty_seqstack(s)) { printf("%c ",pop_seqstack(s)); } return 0; } 【图片】

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号