抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Problem: 94. 二叉树的中序遍历

思路

我们都知道中序遍历是左边 ——> 中间 ——> 右边

解题方法

  1. 一直向左边走
  2. 到达左边尽头后弹出并打印,然后向右边走一个。
  3. 继续一直向左边走。
  4. 到达左边尽头后弹出并打印,然后向右边走一个。
  5. 结束条件是 p 和栈 S 都为空。

复杂度

时间复杂度:

O(n)O(n)

空间复杂度:

链表(linked list)的别称

线性表的链式表示链式存储结构链式映像随机存取结构的储存结构

单向链表

长相

无头链表


指向首元结点的指针叫做头指针(head pointed)

有头链表

第一个结点叫头结点(head node)

结构体定义

软件的选择

其实,我们都知道计算机界的大佬都是有一个属于自己的博客,并且他们的博客都是自己搭建的。这是因为他们知道,一个人的知识是有限的,而一个团队的知识是无限的。所以,他们会把自己的知识分享出来,让更多的人来帮助他们完善自己的知识体系。 我的梦想就是成为一个计算机界的大佬,所以我也要创建一个自己的博客,来记录自己的学习历程,分享自己的知识。 这让我想起了我在我的高中的数学老师的 QQ 说说的下面的...

Problem: 20. 有效的括号

思路

Mryan2005,觉得要先将不相干的先入栈,然后,当遇到相关的括号时,出栈。

解题方法

有思路可得

复杂度

时间复杂度:

O(n)O(n)

空间复杂度:

Problem: 9. 回文数

思路

先拆分,后对比

解题方法

有思路可知。

复杂度

时间复杂度:

O(log2n)O(log_2n)

空间复杂度:

目前将会放弃 Github page,选择使用 Cloudflare page,因为 Github page 的访问速度实在是太慢了,而且还经常被墙,所以我决定放弃 Github page,转而使用 Cloudflare page,这样就可以让大家更快的访问我的博客了。

别称

线性表的顺序表示顺序存储结构顺序映像随机存取结构的储存结构

作用

利用数组的连续存储空间顺序存放线性表的各个元素
a[n-1]a[n] 的直接前趋,a[n+1]a[n] 的直接后继。

结构体代码

第一种写法

1
2
3
4
typedef struct sqList {
ElementType Data[MAXSIZE];
int Last;
} sqList;

Python

1
2
3
4
class LNode:
def __init__(self):
self.Data = []
self.last = -1

前情提要

在之前的 C 语言的学习当中,我们提到了 mallocfree,这两个函数是用来动态分配内存的。
看好。
动态分配的代码是这样写的。

1
2
3
4
5
6
7
8
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int *a = (int*)malloc(sizeof(int)*n);
free(a);
}

结构体结构

1
2
3
4
5
typedef struct {
ElemType *data;
int length;
int listSize;
} DA;

我来解释一下,这个结构体声明。
length 是你实际存了多少的东西,listSize 是你目前表的最大长度。

动态分配的使用

其实,无非就是创、增、删、改、读、销。

创建一个动态分配