闲敲棋子落灯花
njrdear
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构:树的中序查找
找中序查找的下一个结点 先回忆一下: void Inorder(Node* root) { if (root == NULL) return; else { Inorder(root->left); printf("%d", root ->data); Inorder(root->right); } }原创 2021-09-20 17:28:30 · 161 阅读 · 0 评论 -
数据结构:二叉搜索树
删除二叉搜索树中的一个结点 有3种情况: 该结点 1.没有儿子 2.有一个儿子 3.有两个儿子 前两种比较简单,第三种可以选择左子树的最大结点或者右子树的最小结点来顶替该结点,占据该结点位置。 我们本着先找到待删除结点,再分情况讨论的原则。 struct Node* Delete(Node* root, int data) { if (root == NULL) return root; else if (root->data > data) root->left = Dele原创 2021-09-20 16:31:45 · 89 阅读 · 0 评论 -
数据结构:二叉树高度
二叉树高度 struct Node { int data; Node* left; Node* right; }; int max(int a, int b) { return a > b ? a : b; } struct Node* root; int FindHeight(struct Node* root) { if (!root) { return -1; } return max(FindHeight(root->left), FindHeight(root->原创 2021-09-20 15:48:56 · 192 阅读 · 0 评论 -
数据结构:闲敲棋子落灯花之链表逆序输出Reverse
链表逆序输出 首先,我们需要了解,逆序输出不是把数据对应位置改变,而是仅仅改变链接顺序。 方法一:迭代链表。使用循环,遍历链表,每一步,反转一个链接。 方法二:递归。 方法一: 过程:先使第一个结点指向NULL,需要注意,如果已经断开链接,如何查找到下一个链接,最后再用head指向。 在变量中跟踪前一个结点 我们需要反转当前指针,指向它的前一个结点,,所以要在变量中跟踪前一个结点,同时还要记录下一步的位置(遍历链表)。 struct Node* Reverse() { struct Node* curre原创 2021-09-16 15:40:42 · 903 阅读 · 0 评论 -
数据结构:闲敲棋子落灯花之删除结点
删除结点 1.修复链接 2.释放空间原创 2021-09-16 15:03:05 · 352 阅读 · 0 评论 -
数据结构:闲敲棋子落灯花之链表任意位置插入
链表任意位置插入 鉴于之前已经写过结构体主函数,这次主要分析一下Insert函数。 void Insert(int data, int n) { Node* temp1 = (Node*)malloc(sizeof(Node)); temp1->data = data; temp1->next = NULL; if (n == 1) { temp1->next = head; head = temp1; return; } Node* temp2 = head;原创 2021-09-15 23:09:50 · 153 阅读 · 0 评论 -
数据结构:闲敲棋子落灯花之链表头插法
1.链表头插法 #include<stdio.h> #include<stdlib.h> struct Node { int data; struct Node* next; }; struct Node* head; void Insert(int x) { Node* temp = (Node*)malloc(sizeof(struct Node)); temp->data = x;//(*temp).data=x; temp->next = head;原创 2021-09-15 22:36:47 · 106 阅读 · 0 评论
分享