查漏补缺:CRC冗余码+双向链表插入+实现利用栈括号匹配

简介: 查漏补缺:CRC冗余码+双向链表插入+实现利用栈括号匹配

一、CRC冗余码


66dadb8252814f02b43abbe90bdf9090.jpg

二、双向链表的插入


p之后插入s


s->next = p->next;
s->prior = p;
p->next = s;
p->next->prior = s;

22be88d60a60465bbef9bceaf2b913c0.png


三、栈实现括号匹配

public boolean isValid(String s){
  Stack<Character> stack = new Stack<Character>();
  for(char c : s.toCharArray()){
    if(c == '(') stack.push(')');
    if(c == '[') stack.push(']');
    if(c == '{') stack.push('}');
    if(stack.isEmpty() || c!=stack.pop()) return false;
  } 
  return stack.isEmpty();
}

四、手写双向链表

// 二、双端链表
class DoubleLinked {
    private Node head, tail;//头结点和尾结点
    private int size;//链表的元素数目
    public DoubleLinked() {
        head = new Node(0, 0);
        tail = new Node(0, 0);
        head.next = tail;
        tail.prev = head;
        size = 0;
    }
    // 在头部插入node结点
    public void addFirst(Node x) {
        x.prev = head;
        x.next = head.next;
        head.next.prev = x;
        head.next = x;
        size++;
    }
    // 移除指定结点
    public void remove(Node x) {
        x.prev.next = x.next;
        x.next.prev = x.prev;
        size--;
    }
    // 删除链表的第一个结点,并返回该结点
    public Node removeLast() {
        if(head.next == tail) return null;//返回空
        Node last = tail.prev;
        remove(last);//删除尾结点;
        return last;
    }
    public int size() {
        return size;
    }
}


目录
相关文章
|
存储 C语言 索引
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
【Leetcode 2487】从链表中移除节点 —— 单调栈
解题思路:维持一个单调递增栈,当栈为空时,记录当前节点为头节点;否则当前节点为栈顶节点的后继节点
数据结构01-线性结构-链表栈队列-栈篇
数据结构01-线性结构-链表栈队列-栈篇
|
Python
Python实现数据结构(如:链表、栈、队列等)。
Python实现数据结构(如:链表、栈、队列等)。
369 0
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
478 64
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
368 5
|
算法
数据结构之购物车系统(链表和栈)
本文介绍了基于链表和栈的购物车系统的设计与实现。该系统通过命令行界面提供商品管理、购物车查看、结算等功能,支持用户便捷地管理购物清单。核心代码定义了商品、购物车商品节点和购物车的数据结构,并实现了添加、删除商品、查看购物车内容及结算等操作。算法分析显示,系统在处理小规模购物车时表现良好,但在大规模购物车操作下可能存在性能瓶颈。
322 0
|
数据安全/隐私保护
第2章 栈、队列、链表
第2章 栈、队列、链表
|
存储
线性表、链表、栈和队列的初始化
线性表、链表、栈和队列的初始化
119 1
栈和链表的区分
栈和链表的区分
224 0