![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针
文章平均质量分 69
木有米线啊
这个作者很懒,什么都没留下…
展开
-
单链表反转
面试经典问题:单链表反转问题零、前言一、就地反转二、头插法反转零、前言最近在复习数据结构,复习到链表的时候,看到了很经典的问题,链表的反转。这个题在面试的时候很容易考到,特此过来总结以下。一、就地反转就地反转,不借助其他链表,单纯通过前后交换实现链表反转。方法都在图里了。(以下演示的为无头节点链表的反转,与有头节点链表反转方法大同小意)奉上代码struct ListNode* ReverseList(struct ListNode* pHead ) { // write code原创 2021-01-10 16:42:00 · 199 阅读 · 0 评论 -
数据结构复习7, 简单的实现一下哈希表
//// Hash_Table.c// Data_structure//// Created by 양송 on 2020/06/06.// Copyright © 2020 양송. All rights reserved.//#include <stdio.h>#include <stdlib.h>typedef struct node{ char* name; struct node* next;}Node;typedef st原创 2020-06-06 21:48:17 · 109 阅读 · 0 评论 -
数据结构复习6, 堆,堆排序
堆是什么简单的来说, 堆就是使用数组而生成的二叉树. 不同于搜索二叉树的是, 搜索二叉树左孩子永远要比右孩子要小。而堆则分为最大堆以及最小堆. 最大堆的意思就是说从root开始, 它的每个子树都要比root小, 最小堆则与最大堆相反.堆的实现,以及排序#include <stdio.h>#include <stdlib.h>#include <time.h>#define parent(x) (x-1)/2#define left(x) (2*x)+原创 2020-06-06 17:24:01 · 107 阅读 · 0 评论 -
数据结构5.1 有向图的邻接矩阵实现,BFS,DFS
C语言实现昨天发了一个使用邻接表实现的有向图与无向图. 今天补上一个邻接矩阵实现的有向图与无向图. 这个比起邻接表真的是简单太多了.代码如下://// Direct_Graph_AdjMatrix.c// Data_structure//// Created by 양송 on 2020/06/05.// Copyright © 2020 양송. All rights reserved.//#include <stdio.h>#include <stdlib.原创 2020-06-05 20:51:36 · 677 阅读 · 0 评论 -
数据结构复习5: 有向图,无向图的邻接表实现,以及DFS和BFS
#有向图, 无向图的邻接表实现邻接表长下面这个样子:上图所对应的有向图呢, 长下面这样无向图呢就更简单了 ‘A’ 连接着 ‘B’, ‘B’ 当然叶连接着’A’:它所对应的邻接表就应该长这个样子了:实现我在写这个之前,看了很多网上的资料, 发现不是很好理解, 我就自己研究了一天, 无非就是绘制几个链表. 像下面那样:我就是这么理解的, 这里的A指向的B连接着下方数组[1]的B, 通过索引的方式. 有了这个想法, 就很好实现了. (要是我这个有问题, 或者下面的代码实现的不对,请私信我,原创 2020-06-04 22:02:20 · 2344 阅读 · 0 评论 -
数据结构复习4.0.1 二叉搜索树节点的删除
节点删除二叉搜索树节点的删除分为三种情况分别是:第二种情况:第三种情况:代码实现void Get_Father_node(Bin_T* T, Bin_T* child_node, Bin_T** father_node){ if(T!=NULL) { if(T->left == child_node || T->right == child_node) { *father_node = T原创 2020-06-01 21:42:52 · 125 阅读 · 0 评论 -
数据结构复习4. 二叉搜索树的插入, 遍历, 节点的删除(C语言实现)
//// Binary_Tree.c// Data_structure//// Created by 양송 on 2020/05/29.// Copyright © 2020 양송. All rights reserved.//#include <stdio.h>#include <assert.h>#include <stdlib.h>//写一个左边可被二整除,右边不可以被二整除的二叉树typedef struct node{原创 2020-06-01 21:10:04 · 151 阅读 · 0 评论 -
数据结构复习4.1 后缀表达式转中缀表达式与前缀表达式- 二叉树实现
之前总结了利用栈来将中缀表达式转为后缀与前缀表达式的规则,并且附上了代码。最近复习到了树,正好使用二叉树来实现一下。表达式树表达式长成下面这个样子:下图为:后缀表达式 :ACB*+D/ 的表达式树。前缀表达式为:/ + A * C B D中缀表达式为: A + C * B / D...原创 2020-05-31 13:11:28 · 696 阅读 · 0 评论 -
数据结构复习2.1 链表队列,链表循环队列
普通队列与循环队列的链表实现单队列实现循环链表单队列实现队列的定义就不赘述了,直接上代码把。为了方便使用了无头的链表。插入方式为尾插法。#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef struct node{ int data; struct node* next;}List;typedef struct{ int rear; int front; List*原创 2020-05-26 21:04:34 · 226 阅读 · 0 评论 -
数据结构复习1.1, 链表栈
栈的链表实现实现头插法实现栈尾插法实现实现栈的定义以不用多说。链表栈的实现主要是依靠头插法将元素插入链表。尾插法也可以就是有点麻烦。头插法实现栈#include <stdio.h>#include <stdlib.h>#include <assert.h>//written by 真的木有鱼丸啊//定义一个链表typedef struct node{ int data; struct node* next;}List;//定义一个栈t原创 2020-05-26 15:35:57 · 108 阅读 · 0 评论 -
数据结构复习3. 链表-循环链表(C语言实现)
循环链表的实现循环链表插入方式头插法尾插法C语言 实现上述代码执行结果循环链表循环链表就是在单链表的基础上,尾节点总是指向头节点的。如下图所示:插入方式只要是链表就存在两种插入放下,下面介绍循环链表的头插法,与尾插法。头插法循环链表的头插法与单链表的头插法相似。假设链表中存在一个元素。生成一个新元素,并在头节点后方插入。插入完成。尾插法尾插法的方法也与单链表的尾插法类似,只不过尾节点要指向头节点罢了。假设链表中有一个元素。生成新节点,插入在尾节点之后,并且将新的尾原创 2020-05-25 21:33:07 · 281 阅读 · 0 评论 -
数据结构复习3. 链表-双向链表(C语言实现)
双向链表双向链表顾名思义,各个节点前后都相连。就像下图表示的那样。尾插法既然时链表,那么就存在两种元素的插入方式。一为头插法,二为尾插法。我们现在介绍一下尾插法如何实现。假设当前链表中有一个元素。然后在元素1的后面插入新的节点。插入完毕头插法双向链表的头插法与单链表的头插法是相似的。只不过增加了向前的指针罢了。假设链表中已有一个元素生成新节点,并在head后方插入新节点插入完成.C语言代码#include <stdio.h>#include &l原创 2020-05-24 21:17:06 · 157 阅读 · 0 评论 -
数据结构复习3: 链表(C语言实现)
使用C语言实现单链表单链表头插法尾插法C语言 实现单链表链表,顾名思义,将数据向链子一样的窜起来。可以从中间提取数据,也可以从中间插入数据。当然,链表分为单向链表,双向链表,以及循环链表。今天我们来看看那单链表该如何实现。链表的插入方法分为两种一种为头插法,另一种是尾插法。下面我们来看一下这两种插入方法。头插法首先我们先来看一看头插法。其实我并不喜欢这个名称,这个名称乍一听上去根本不明白什么意思。头插法简单一点来说就是,每个新节点都在头节点后面插入,而不是尾节点后面插入。这就造就了,使用头插法之后原创 2020-05-23 17:11:21 · 184 阅读 · 0 评论