0%

链表基础

链表基础

双向链表

双向链表.png

  • 双向链表可以向前或者向后查找。
  • 双向链表可以实现自我删除。
  • 插入一个元素,让插入的新节点指向tmp.next节点,新节点的pre指向tmp临时节点, tmp.next也就是临时节点的下一个节点,也就是新节点的下一个节点).pre指向新节点,最后让tmp.next指向新节点。这里顺序不能乱。
  • 删除一个元素,将tmp当前的节点next指向tmp下一个节点的下一个节点,此时tmp.next节点变成了待删除节点的下一个节点,接着让tmp的下个节点的pre指向tmp,完成删除。期间要考虑next为空节点的情况。
Read more »

链表基础

链表基础

单向链表

单向链表.png

  • 第一个节点称之为头节点,里面不存放数据,最后一个称之为尾节点,指向NULL。
  • 每个节点分为两个部分。第一个部分是保存活显示关于节点的信息,第二个部分是存储下一个节点的地址。
  • 单链表只能单方向遍历,且最后尾节点的下一个地址指针指向为NULL。
Read more »

数组模拟队列(单向)

队列.png

  1. 队列三个要素, head,指向队列头; tail, 指向队列尾; maxCap, 队列总容量。
  2. 队列初始化的时候, head和tail都指向-1位置。
  3. 对于head而言, 指向的位置为弹出的元素. 在弹出的时候,head先+1, 再弹出head此时指向的元素。
  4. 对于tail而言, 指向的位置为队尾. 在压入元素的时候, tail先+1, 再放入元素。
  5. 当head == tail的时候, 说明队列为空。
  6. 当tail == maxCap-1的时候, 说明队列已满, 之所以要-1 是因为下标是从0开始的。
  7. 数组单向队列, 压入元素的时候会占用一个位置,当占满后,即便弹出元素,也无法释放空间。
  8. 所有的弹出都是伪弹出, 因为随着head的移动, 当查看队列内容的时候, 只是查看head到tail区间的元素。
  9. 单向队列, 当存储满之后, 哪怕取出数据也无法再往里塞入数据。
Read more »

稀疏数组使用场景

当一个二维数组的大部分元素为0,或者为相同值时,可以使用稀疏数组来压缩保存该二维数组。

稀疏数组处理方法

  1. 稀疏数组一般n行,3列,第一列表示原先二维数组的行,第二列表示原先二维数组的列,第三列表示值。
  2. 稀疏数组的第一行,一般用来表示原先二维数组的总行数以及总列数,值可以定义一个原先二维数组中不可能产生的值,比如-1,0。
Read more »

查看如何水平居中

垂直居中相对比较复杂

行级元素(inline inline-*类型)垂直居中

单行情况

  1. 有时候看似居中了,其实是上下padding预留了相同的空间,所以中间的内容居中了。
Read more »

查看如何垂直居中

行级元素(inline inline-*类型)水平居中

  • 只需要将需要水平居中的行级元素包裹在父级块级元素内,对父级元素设置text-align: center;属性即可。
  • inline, inline-block, inline-table, inline-flex等属性都适用。
Read more »

我的小程序菜单栏点击延迟很大

  1. 小程序是用uni-app写的,写完真机调试发现菜单栏点击的延迟相当厉害,几乎有一到两秒。
  2. 微信开发工具的模拟界面点击没有任何的延迟感。
  3. 点击菜单栏会使得当前被点击的内容添加额外的样式,字体color为红色,背景为灰色。
Read more »

遇到的一些问题

  1. 最近把前端重新温习了下,然后在写小程序,首页样式就难住了,中间区块,怎么都无法铺满空白区域。

    zhongjian.png

  2. 当时想到用子绝父相来解决,但即便使用了,还是有问题。中间区块设定bottom: 88rpx无法和底端bar对齐。

Read more »