栈的应用:检查括号匹配性

题目背景 我们都知道,在编程语言中,我们常用多种类型的括号,( )圆括号、[ ]方括号、{ }花括号,当括号不匹配时,编译时会发生错误。那么编译器是如何检验括号匹配性的呢? ...

一月 9, 2023 · 2 分钟 · 573 字 · Mi Yan

用栈反转一个字符串或反转一个链表

Introduction of Stack 栈是一种数据结构,属于抽象数据结构(ADT),遵循Last-In-First-Out(LIFO)原则。 ...

一月 8, 2023 · 2 分钟 · 650 字 · Mi Yan

双向链表(Doubly Linked List)

双向链表介绍 双向链表的结构如下: struct Node{ int data; struct Node* prev; struct Node* next; }; 可以看到双向链表的节点是由两个结构体指针及相关数据构成的,因此可以更方便地对链表中的节点进行访问和数据的修改。 ...

一月 5, 2023 · 2 分钟 · 684 字 · Mi Yan

反转链表(迭代及递归实现)

从上图中可以看出,反转一个链表只需要改变Node.link。 I. 迭代实现 思路 设置三个结构体指针Prev、current、next,分别保存之前的节点的地址、目前的节点地址、之后的节点地址。 ...

一月 3, 2023 · 3 分钟 · 1031 字 · Mi Yan

Linked list - Implementation in C

链表是一种常见的数据结构,它的基本单位是node,由data和link两部分组成。 创建一个链表需要以下几个步骤: 1.创建节点的结构体 一个简单的结构体,由数据和结构体指针构成,代码如下: ...

一月 2, 2023 · 1 分钟 · 202 字 · Mi Yan