ICode9

精准搜索请尝试: 精确搜索
  • 王道数据结构 (23) 基数排序2020-08-21 16:00:54

                     示例代码 :   /** * 基数排序-单链表实现 */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define Error(Str) FatalError(Str) #define FatalError(Str) fprintf(stderr, "%s\n", Str), exit(1) #define N 10 /

  • C/C++实现链表的常用操作2020-07-10 14:36:28

    剑指offer版本 创建一个结点 链接两个结点(链表) 打印某个结点的值 打印pHead之后的链表 销毁pHead之后的链表 //================================================================== // 《剑指Offer——名企面试官精讲典型编程题》代码 // 作者:何海涛 //======================

  • 剑指offer——二叉树的下一个结点2020-05-31 21:08:05

    牛客网原题目链接:二叉树的下一个结点。 题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 解题思路: 对于一个给定的二叉树,题目要求中序遍历,中序遍历的顺序是先中序遍历左子树,再根节

  • 数据结构——栈2020-05-20 23:01:20

    数据结构——栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈

  • LeetCode 637. 二叉树的层平均值 [Average of Levels in Binary Tree (Easy)]2020-05-12 23:05:40

    给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 来源:力扣(LeetCode)   /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL

  • 链表删除功能实现演示2020-05-03 13:43:31

    插入算法和删除演示: #include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib.h> typedef struct Node { int data; //数据域 struct Node * pNext; //指针域 }Node, *pNode; //函数声明 pNode create_list(); void traverse_list(pNod

  • LeetCode 19. 删除链表的倒数第N个节点 Remove Nth Node From End of List (Medium)2020-04-30 23:01:22

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 来源:力扣(LeetCode)   解法一:快慢指针,一次遍历。

  • 数据结构--单链表2020-04-01 09:55:30

    /******************************************************************* Copyright(c) 2016, Harry He All rights reserved. Distributed under the BSD license. (See accompanying file LICENSE.txt at https://github.com/zhedahht/CodingInterviewChinese2/blob/master/

  • 《剑指offer》第三十五题:复杂链表的复制2020-03-31 16:55:46

    // 面试题35:复杂链表的复制 // 题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复 // 制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个 // 结点外,还有一个m_pSibling 指向链表中的任意结点或者nullptr。 #include <cstdio> #include "Comp

  • 面试题五十五:二叉树的深度2020-03-29 17:08:29

      从根节点到叶子点的最长路径上的结点数为深度 方法:根据树的特性,比较左右子树,选那个长的加1;大问题小化递归计算 int TreeDepth(BinaryTreeNode pNode){ //边界,叶子的下一个返回0 if(pNode==null ) return 0; int L= TreeD

  • 面试题二十四:将一个链表反转2020-03-29 14:52:45

      方法1:三指针法 1 ListNode f1( LstNode head){ 2 ListNode phead=null; 3 4 ListNode pnode=head; 5 ListNode pPre=null; 6 7 while( pnode!=null){ 8 ListNode p

  • 工程化编程实战callback接口学习笔记2020-03-19 21:56:13

    实验环境 本次实验的环境是Windows 10+VS Code,实验用到的代码先在Linux环境下解压再拷贝到Windows中。   编译、运行  先进入代码所在目录,然后输入指令“gcc -o test linktable.c menu.c”得到可执行文件“test.exe” 可以看到,我们的目录下生成了可执行文件。 运行“test.exe

  • 工程化编程实战callback接口学习2020-03-19 15:03:13

    一、测试运行 1、安装配置MinGW后,在VS中编译报错,如图: 2、后来参考其他同学,用linux进行编译,于是改变环境,连接了Ubuntu进行编译:  3、添加头文件#include<string.h>后,传至Ubuntu虚拟机,重新编译运行,结果如下:   二、寻找错误 1、可以在代码中发现,当输入quit时,此时出了问题:  2、进

  • 工程化编程实战callback接口学习笔记2020-03-18 12:57:07

    1.1、运行环境linux,编译工具gcc,实验代码lab5-1.tar.gz 即http://pan.baidu.com/s/1pJ0qAIv 1.2、使用gcc编译程序linktable.c和menu.c,即使用命令gcc -o test linktable.c menu.c,将linktable和menu.c编译成可执行文件,名为test。 注意需要在menu.c的头文件中加入#include<string.h

  • 工程化编程实战callback接口学习笔记2020-03-16 13:03:58

    一.VSCode下编译运行 通过如下编译命令 gcc -o test linktable.c menu.c 在当前工作目录下生成一个test.exe可执行文件   二.通过VSCode+GDB调试程序找出quit命令无法运行的bug产生的原因 源码分析 输入quit 发现提示错误命令wrong cmd  试着找出quit无法运行的原因,查看源

  • 工程化编程实战callback接口学习笔记2020-03-16 12:58:16

    1、编译运行相关程序   1.1、运行环境Ubuntu18.04,编译工具gcc,实验代码lab5-1.tar.gz 即http://pan.baidu.com/s/1pJ0qAIv   1.2、使用gcc编译程序linktable.c和menu.c,即使用命令gcc -o test linktable.c menu.c,将linktable和menu.c编译成可执行文件,名为test。 注意需要在menu.

  • 工程化编程实战callback接口学习笔记2020-03-15 21:51:31

    一、实验要求 在VSCode下编译运行lab5-1.tar.gz  通过VSCode+GDB调试程序找出quit命令无法运行的bug产生的原因 分析callback接口的运行机制,总结callback接口设计的方法 二、实验过程       首先安装好vscode和MinGW并配置好环境变量。       在vscode下导入实验所需

  • 线索二叉树之「后序线索二叉树」(三叉链表实现遍历)2020-03-15 18:37:03

    typedef struct ThreadNode{ int data; struct ThreadNode *lchild,*rchild,*pnode; int ltag,rtag; }ThreadNode,*ThreadTree; ThreadNode *pre=NULL; //初始化一棵树 void initTree(ThreadTree &T){ T = (ThreadNode *)malloc(sizeof(ThreadNode));

  • 【剑指offer】二叉树的下一个结点2020-03-05 23:03:37

    题目链接:二叉树的下一个结点   题意:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。   题解:中序遍历查找下一个节点。也是数据结构里的常见题。 当前节点如果有右子树,下一个节点是右子树最

  • 头插法-顺序输出,尾插法-反向输出(C语言)2020-03-05 12:05:22

    #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct node{ int data; struct node *next; }Node, *pNode; pNode rear_create(int n){//尾插法建立 pNode head = (pNode)malloc(sizeof(Node)); pNode rear = head;//注意与头插法不同地方

  • 剑指offer-8 二叉树的下一个节点2020-03-01 23:52:58

    剑指offer-8 二叉树的下一个节点题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 右侧有节点,直接打印 右侧没节点 此节点的父节点的左节点是自己,打印 此节点的父节点的右节点是

  • 剑指offer---二叉树的下一个节点2020-03-01 21:44:19

    题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结 点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指 针。 思路:若节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指 向左子结点的指针找到的叶子节点即为下一个节点;若节

  • 浅析数据结构系列(五)2020-02-28 18:45:18

    之前的博文写过了,单链表的实现方式,今天补充一下双链表的实现方式吧!其实原理也很简单~ 话不多说,直接撸码走起~ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DoubleLinkList { pub

  • 数据结构----链表2020-02-25 20:01:24

    内存 先来谈谈内存 代码区里存放程序的代码,即CPU执行的机器指令,并且是只读的; 全局区里存放定义的全局变量; 栈区里存放着定义的局部变量,系统自动回收释放; 堆区需要手动申请malloc,手动释放free (栈区内存小,堆区内存很大很大) 学习数据结构先得明白内存! 链表 鄙人普通本科,表示老

  • C++反转链表2020-02-22 15:57:13

    建立新链表进行反转 struct ListNode{ int val; struct ListNode *next; } class solution{ public: ListNode* ReverseList(ListNode* pHead){ ListNode* pNode=pHead; //当前节点 ListNode* pPrev=nullptr; //前一个节点 ListNode*

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有