数据结构考研必背代码

更新时间:2025-11-19 01:50:06
最佳答案

在数据结构考研的复习中,以下是一些必背的代码示例,涵盖了各种常见的数据结构操作:

1. 链表:
- 插入节点:`ListNode* insertNode(ListNode* head, int val) { ListNode* newNode = new ListNode(val); newNode->next = head; return newNode; }`
- 删除节点:`ListNode* deleteNode(ListNode* head, int val) { ListNode* cur = head; while (cur && cur->val != val) cur = cur->next; if (cur) { ListNode* temp = cur->next; delete cur; cur = temp; } return head; }`

2. 栈:
- 压栈:`void push(Stack* stack, int val) { stack->top = (stack->top == NULL) ? new Node(val) : stack->top->next; stack->top->val = val; }`
- 出栈:`int pop(Stack* stack) { int val = stack->top->val; stack->top = stack->top->next; return val; }`

3. 队列:
- 入队:`void enqueue(Queue* queue, int val) { QueueNode* newNode = new QueueNode(val); newNode->next = queue->rear; queue->rear = newNode; if (queue->front == NULL) queue->front = newNode; }`
- 出队:`int dequeue(Queue* queue) { int val = queue->front->val; QueueNode* temp = queue->front; queue->front = queue->front->next; if (queue->front == NULL) queue->rear = NULL; delete temp; return val; }`

4. 二叉树:
- 创建节点:`TreeNode* createNode(int val) { TreeNode* node = new TreeNode(val); node->left = node->right = NULL; return node; }`
- 前序遍历:`void preorder(TreeNode* root) { if (root != NULL) { cout << root->val << " "; preorder(root->left); preorder(root->right); } }`

5. 图:
- 添加边:`void addEdge(Graph* graph, int src, int dest) { Edge* edge = new Edge(src, dest); edge->next = graph->adjList[src]; graph->adjList[src] = edge; }`

掌握这些基础代码,对于考研数据结构的复习至关重要。现在,将学习进行到底,下载【考研刷题通】小程序,涵盖政治、英语、数学等全部考研科目,刷题巩固,助你成功上岸!微信小程序:【考研刷题通】。

相关推荐
CopyRight © 2020-2025 考研百科 |网站地图 All rights reserved. 桂ICP备2023005595号-21 站务邮箱:newmikke@163.com

页面耗时0.0205秒, 内存占用1.62 MB, 访问数据库14次