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

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

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

探索學(xué)習(xí)新天地,共享知識資源!

0 提交作業(yè)
0 布置作業(yè)
0 滿分作業(yè)
得分 100
討論題

cjozGV 的學(xué)生作業(yè):

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef int datatype_t; //定義鏈表節(jié)點結(jié)構(gòu) typedef struct Node{ datatype_t value; //節(jié)點的值,代表入的編號 struct Node* next; } Node; //創(chuàng)建包含n個節(jié)點的循環(huán)鏈表 Node* create_Circular_LinkedList(int n) { Node* head = NULL; // 鏈表頭指針 Node* prev = NULL; // 用于跟蹤前一個節(jié)點 for (int i = 1; i value = i; // 設(shè)置節(jié)點值 newNode->next = NULL; if (head == NULL) { head = newNode; // 第一個節(jié)點作為頭節(jié)點 } else { prev->next = newNode; // 將前一個節(jié)點的next指向新節(jié)點 } prev = newNode; // 更新前一個節(jié)點為當(dāng)前新節(jié)點 } if (prev != NULL) { prev->next = head; // 將最后一個節(jié)點的next指向頭節(jié)點,形成循環(huán) } return head; // 返回頭節(jié)點 } void josephus(int n, int k, int m) { Node* head = create_Circular_LinkedList(n); // 創(chuàng)建循環(huán)鏈表 Node* current = head; // 當(dāng)前節(jié)點指針 Node* prev = NULL; // 當(dāng)前節(jié)點的前一個節(jié)點指針 // 移動到起始點:第k個節(jié)點 for (int i = 1; i < k; i++) { prev = current; current = current->next; } printf("出列順序: "); // 當(dāng)鏈表中不止一個節(jié)點時循環(huán) while (current->next != current) { // 計數(shù)m-1次,找到要刪除節(jié)點的前一個節(jié)點 for (int i = 1; i < m; i++) { prev = current; current = current->next; } // 輸出當(dāng)前要刪除的節(jié)點值 printf("%d ", current->value); // 刪除當(dāng)前節(jié)點:將前一個節(jié)點的next指向當(dāng)前節(jié)點的下一個節(jié)點 prev->next = current->next; // 保存當(dāng)前節(jié)點以便釋放內(nèi)存 Node* temp = current; // 移動到下一個節(jié)點 current = current->next; // 釋放當(dāng)前節(jié)點的內(nèi)存 free(temp); } // 輸出最后一個節(jié)點 printf("%d\n", current->value); // 釋放最后一個節(jié)點的內(nèi)存 free(current); } int main() { int n = 8; // 總?cè)藬?shù) int k = 3; // 起始位置 int m = 4; // 計數(shù)到m的人出列 josephus(n, k, m); // 調(diào)用約瑟夫函數(shù) return 0; }

得分 100
學(xué)習(xí)任務(wù)

cjozGV 的學(xué)生作業(yè):

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef int datatype_t; //定義鏈表節(jié)點結(jié)構(gòu) typedef struct Node{ datatype_t value; //節(jié)點的值,代表入的編號 struct Node* next; } Node; //創(chuàng)建包含n個節(jié)點的循環(huán)鏈表 Node* create_Circular_LinkedList(int n) { Node* head = NULL; // 鏈表頭指針 Node* prev = NULL; // 用于跟蹤前一個節(jié)點 for (int i = 1; i value = i; // 設(shè)置節(jié)點值 newNode->next = NULL; if (head == NULL) { head = newNode; // 第一個節(jié)點作為頭節(jié)點 } else { prev->next = newNode; // 將前一個節(jié)點的next指向新節(jié)點 } prev = newNode; // 更新前一個節(jié)點為當(dāng)前新節(jié)點 } if (prev != NULL) { prev->next = head; // 將最后一個節(jié)點的next指向頭節(jié)點,形成循環(huán) } return head; // 返回頭節(jié)點 } void josephus(int n, int k, int m) { Node* head = create_Circular_LinkedList(n); // 創(chuàng)建循環(huán)鏈表 Node* current = head; // 當(dāng)前節(jié)點指針 Node* prev = NULL; // 當(dāng)前節(jié)點的前一個節(jié)點指針 // 移動到起始點:第k個節(jié)點 for (int i = 1; i < k; i++) { prev = current; current = current->next; } printf("出列順序: "); // 當(dāng)鏈表中不止一個節(jié)點時循環(huán) while (current->next != current) { // 計數(shù)m-1次,找到要刪除節(jié)點的前一個節(jié)點 for (int i = 1; i < m; i++) { prev = current; current = current->next; } // 輸出當(dāng)前要刪除的節(jié)點值 printf("%d ", current->value); // 刪除當(dāng)前節(jié)點:將前一個節(jié)點的next指向當(dāng)前節(jié)點的下一個節(jié)點 prev->next = current->next; // 保存當(dāng)前節(jié)點以便釋放內(nèi)存 Node* temp = current; // 移動到下一個節(jié)點 current = current->next; // 釋放當(dāng)前節(jié)點的內(nèi)存 free(temp); } // 輸出最后一個節(jié)點 printf("%d\n", current->value); // 釋放最后一個節(jié)點的內(nèi)存 free(current); } int main() { int n = 8; // 總?cè)藬?shù) int k = 3; // 起始位置 int m = 4; // 計數(shù)到m的人出列 josephus(n, k, m); // 調(diào)用約瑟夫函數(shù) return 0; }

得分 100
學(xué)習(xí)任務(wù)

cjozGV 的學(xué)生作業(yè):

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef int datatype_t; typedef struct linknode{ datatype_t data; //數(shù)據(jù)域 struct linknode *next; //節(jié)點域 } linknode_t; //1.創(chuàng)建一個新鏈表,為頭節(jié)點在棧區(qū)創(chuàng)建空間 linknode_t *create_list(int arr[],int n){ linknode_t *head = (linknode_t *)malloc(sizeof(linknode_t)); head->next = NULL; //初始時鏈表為空 linknode_t *tail = head; //尾指針初始指向頭節(jié)點 //2.遍歷數(shù)組,逐個插入節(jié)點 for (int i = 0; i < n; ++i) { //2.1創(chuàng)建新節(jié)點 linknode_t *new_node = (linknode_t *)malloc(sizeof(linknode_t)); new_node->data = arr[i]; //存儲數(shù)據(jù) new_node->next = NULL; //新節(jié)點的next暫時為NUll //2.2將新節(jié)點鏈接到鏈表末尾 tail->next = new_node; //尾節(jié)點的next指向新節(jié)點 tail = new_node; //更新尾指針 } return head; } // 打印鏈表 void print_list(linknode_t *head){ linknode_t *p = head->next; //跳過頭節(jié)點 while (p != NULL){ printf("%d ",p->data); p = p->next; } printf("\n"); } // 逆序鏈表(反轉(zhuǎn)鏈表) void reverse_list(linknode_t *head){ if (head == NULL || head->next == NULL || head->next->next == NULL){ return; //空鏈表或只有一個節(jié)點,無需反轉(zhuǎn) } linknode_t *prev = NULL; linknode_t *curr = head->next; //從第一個實際節(jié)點開始 linknode_t *next = NULL; while (curr != NULL){ next = curr->next; //保存下一個節(jié)點 curr->next = prev; //反轉(zhuǎn)指針 prev = curr; //prev前移 curr = next; //curr前移 } head->next = prev; //更新頭節(jié)點的next指向新的第一個節(jié)點 } void clear_list(linknode_t *head) { linknode_t *p = head; while (p != NULL) { linknode_t *temp = p; p = p->next; free(temp); // 釋放當(dāng)前節(jié)點 } } int main() { int arr[] = {1, 5, 3, 7, 9}; int n = sizeof(arr) / sizeof(arr[0]); // 1. 創(chuàng)建鏈表并插入數(shù)據(jù) linknode_t *head = create_list(arr, n); printf("原始鏈表: "); print_list(head); // 2. 逆序鏈表 reverse_list(head); printf("逆序后鏈表: "); print_list(head); // 3. 清除鏈表 clear_list(head); head = NULL; // 防止野指針 return 0; }

得分 100
學(xué)習(xí)任務(wù)

浪潮君 的學(xué)生作業(yè):

#include #include // 定義二叉樹節(jié)點結(jié)構(gòu) typedef struct TreeNode { char data; struct TreeNode *left; struct TreeNode *right; } TreeNode; // 定義隊列節(jié)點結(jié)構(gòu) typedef struct QueueNode { TreeNode *treeNode; struct QueueNode *next; } QueueNode; // 定義鏈?zhǔn)疥犃薪Y(jié)構(gòu) typedef struct LinkQueue { QueueNode *front; QueueNode *rear; } LinkQueue; // 創(chuàng)建新的樹節(jié)點 TreeNode* createTreeNode(char data) { TreeNode *node = (TreeNode*)malloc(sizeof(TreeNode)); node->data = data; node->left = NULL; node->right = NULL; return node; } // 創(chuàng)建空的鏈?zhǔn)疥犃?LinkQueue* createEmptyLinkQueue() { LinkQueue *q = (LinkQueue*)malloc(sizeof(LinkQueue)); q->front = NULL; q->rear = NULL; return q; } // 判斷隊列是否為空 int isEmptyLinkQueue(LinkQueue *q) { return q->front == NULL; } // 入隊操作 void enterLinkQueue(LinkQueue *q, TreeNode *node) { QueueNode *newNode = (QueueNode*)malloc(sizeof(QueueNode)); newNode->treeNode = node; newNode->next = NULL; if (isEmptyLinkQueue(q)) { q->front = newNode; q->rear = newNode; } else { q->rear->next = newNode; q->rear = newNode; } } // 出隊操作 TreeNode* deleteLinkQueue(LinkQueue *q) { if (isEmptyLinkQueue(q)) { return NULL; } QueueNode *temp = q->front; TreeNode *node = temp->treeNode; q->front = q->front->next; if (q->front == NULL) { q->rear = NULL; } free(temp); return node; } // 層次遍歷函數(shù) void levelOrderTraversal(TreeNode *root) { if (root == NULL) return; LinkQueue *q = createEmptyLinkQueue(); enterLinkQueue(q, root); while (!isEmptyLinkQueue(q)) { TreeNode *temp = deleteLinkQueue(q); printf("%c ", temp->data); if (temp->left != NULL) { enterLinkQueue(q, temp->left); } if (temp->right != NULL) { enterLinkQueue(q, temp->right); } } free(q); } // 主函數(shù),構(gòu)建二叉樹并調(diào)用層次遍歷 int main() { // 構(gòu)建二叉樹 TreeNode *root = createTreeNode('A'); root->left = createTreeNode('B'); root->right = createTreeNode('C'); root->left->left = createTreeNode('D'); root->left->right = createTreeNode('E'); root->right->right = createTreeNode('F'); // 調(diào)用層次遍歷函數(shù) levelOrderTraversal(root); printf("\n"); return 0; } 運(yùn)行結(jié)果:A B C D E F

得分 100
討論題

cjozGV 的學(xué)生作業(yè):

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef int datatype_t; typedef struct linknode{ datatype_t data; //數(shù)據(jù)域 struct linknode *next; //節(jié)點域 }linknode_t; //1.創(chuàng)建一個新鏈表,為頭節(jié)點在棧區(qū)創(chuàng)建空間 linknode_t *create_empty_linklist(){ //1.為頭節(jié)點在堆區(qū)分配空間,用指針head保存 linknode_t *head = NULL; head = (linknode_t*)malloc(sizeof(linknode_t)); //2.頭節(jié)點的指針域為NULL if (NULL == head){ printf("malloc is fail!\n"); return NULL; } memset(head,0, sizeof(linknode_t)); return head; } //2.按從小到大的順序插入數(shù)據(jù) void insert_order_linklist(linknode_t *head,datatype_t data){ //1.創(chuàng)建新節(jié)點 linknode_t *new_node = NULL; new_node = (linknode_t*)malloc(sizeof(linknode_t)); new_node->data = data; //1.設(shè)置新節(jié)點的數(shù)據(jù) //2.找到插入的位置 linknode_t *p = head; //從鏈表的頭開始 while (p->next != NULL && p->next->data > data){ p = p->next; //向后移動指針,直到找到合適的插入位置 } //3.插入新節(jié)點 new_node->next = p->next; //新節(jié)點指向p的下一個節(jié)點 p->next = new_node; //p指向新節(jié)點 } // 打印鏈表中的數(shù)據(jù)(從大到?。?void printf_data_linklist(linknode_t *head) { linknode_t *p = head->next; // 跳過頭節(jié)點 printf("Linked List: "); while (p != NULL) { printf("%d ", p->data); p = p->next; } printf("\n"); } //刪除鏈表中所有值為target的節(jié)點 void delete_all_target_nodes(linknode_t *head,datatype_t target){ linknode_t *p = head; //p指向當(dāng)前節(jié)點的前一個節(jié)點 while (p->next != NULL){ if (p->next->data == target){ // 找到目標(biāo)點刪除它 linknode_t *temp = p->next; //暫存目標(biāo)節(jié)點 p->next = temp->next; //前驅(qū)節(jié)點跳過目標(biāo)節(jié)點 free(temp); } else { p = p->next; //繼續(xù)遍歷 } } } //4.釋放鏈表占用的內(nèi)存 void free_linklist(linknode_t *head) { linknode_t *p = head; // 從頭節(jié)點開始釋放 while (p != NULL) { linknode_t *temp = p; // 暫存當(dāng)前節(jié)點 p = p->next; // 移動到下一個節(jié)點 free(temp); // 釋放當(dāng)前節(jié)點 } } int main(){ //1.創(chuàng)建空鏈表 linknode_t *head = create_empty_linklist(); //2.準(zhǔn)備要插入的數(shù)據(jù) datatype_t data[] = {1, 5, 3, 7, 9, 5, 8, 5, 3}; int n = sizeof(data) / sizeof(data[0]); //3.有序插入數(shù)據(jù) for (int i = 0; i < n; i++) { insert_order_linklist(head,data[i]); } //4.打印鏈表 printf_data_linklist(head); //5.刪除所有值為3的節(jié)點 delete_all_target_nodes(head,3); //6.再次打印 printf_data_linklist(head); //7.釋放鏈表內(nèi)存 free_linklist(head); return 0; }

微信客服

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

幫助反饋 APP下載

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

公眾號

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