
数据结构
文章平均质量分 72
活的钻石
每时每刻都是活生生的,都走向活的方向,都有安全的活。
每一个刹那都淳珍宝爱,都充满热诚于美,都有创造的力。
那么,生命就会有钻石的美好,钻石的光芒了。
展开
-
单链表反转的递归和非递归方法
单链表反转有递归和非递归两种实现方法,首先定义链表结点://定义一个链表节点struct ListNode{ int value; ListNode *next;};一、递归方法先反转后面的链表,从最后面的两个结点开始反转,依次向前,将后一个链表结点指向前一个结点,注意每次反转后要将原链表中前一个结点的指针域置空,表示将原链表中前一个结点指向后一个结点的指向关系断开。二、非递归方法利用两个结点指针和一个中间结点指针temp(用来记录当前结点的下一个节点的..转载 2021-02-07 16:45:23 · 517 阅读 · 0 评论 -
Leetcode 203. 移除链表元素
https://leetcode-cn.com/leetbook/read/linked-list/f9izv/这个题目是一道简单题,但是我觉得还是蛮好的,因为题解采用的方法是引入哨兵节点。哨兵节点和哑节点其实是一回事,哨兵节点(sentinel)是一个哑元节点(dummy node),可以简化边界条件。是一个附加的链表节点,该节点作为第一个节点,它的值域中并不存储任何东西,只是为了操作的方便而引入的。如果一个链表有哨兵节点的话,那么线性表的第一个元素应该是链表的第二个节点。很多情况下,需要处...原创 2021-02-07 14:59:42 · 176 阅读 · 0 评论 -
请要相信我,30分钟让你掌握AVL树(平衡二叉树)
算法与数据结构-树-树和森林及应用78562 38请要相信我,30分钟让你掌握AVL树(平衡二叉树)作者:u011469062 请要相信我,30分钟让你掌握AVL树(平衡二叉树)前言:本文不适合 给一组数据15分钟就能实现AVL的插入和删除操作的大牛(也请大牛不要打击小菜)本文适合,对avl还不了解,还没有亲自实现avl的插入和删除操...转载 2018-10-26 17:24:24 · 237 阅读 · 0 评论 -
nyoj 35 表达式求值(栈)
nyoj 35 表达式求值(栈)表达式求值描述 ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n<10)。每组测试数据只有一行,是一个长度不...转载 2018-11-07 16:42:43 · 247 阅读 · 0 评论 -
第1节 基础-数组中只出现一次的数字 (牛客网)
题目来源:牛客网题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。题目解析:使用异或,两个相同的数字异或会等于0;若只存在一个数,一直异或就会把这个数生下来;若两个数,一直异或,这两个不同的数异或之后会生成一个数,某位上一定会出现1,则表示这个位上,两数不同;根据这个位,将数组分成两组,每组即只存在一个不同的数。#in...原创 2018-11-24 19:15:54 · 187 阅读 · 0 评论 -
单链表相关操作
首先清楚常见的线性表分为:顺序表 链表 栈 队列 字符串。顺序表是一段物理地址连续的存储单元依次存储数据结构元素的线性结构。一般情况下采用数组存储。顺序存储分为静态存储和动态存储,静态存储采取数组的形式,动态存储采取数组合指针相结合的方法。动态顺序表比较常用,中间/头部的插入和删除时间复杂度为O(n).链表常见的结构有8种.但是在以后工作上容易用到的是循环链表。在找工作的面试题...原创 2019-02-21 17:27:27 · 133 阅读 · 0 评论 -
栈和逆波兰表达式
中缀表达式1+2,1+3*2,1+(3*2*(1+3)),这些就是中缀表达式,就是我们平时经常见到的形式,先算加减再算乘除,有括号的先算括号里面的,没有括号按照优先级顺序进行计算。但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以方便从一个表达式中间抽出,一部分算完结果,再放进去,然后继续后面的计算(链表也许可以,但是,代价也是不菲)。若用链表进行计算,不断地更新值...原创 2019-07-12 12:34:10 · 407 阅读 · 0 评论