【愚公系列】2023年03月 其他-Web前端基础面试题(数据结构和算法_8道)

2023-03-16 18:04:47 浏览数 (1)

文章目录

      • 一、数据结构和算法
        • 1、什么是数组?
        • 2、Js中的数组是真正的“数组“么?
        • 3、什么是队列?
        • 4、 什么是链表?与数组的区别是?
        • 5、什么是栈?
        • 6、什么是哈希及哈希冲突?
        • 7、二叉树有几种遍历方式?
        • 8、简述冒泡排序?

一、数据结构和算法

1、什么是数组?

数组是由相同类型的元素(element)的集合所组成的数据结构,分配一块连续内存来存储。

特点:相同类型,连续内存,固定长度。

2、Js中的数组是真正的“数组“么?

不是真正的数组,因为js数组可以存放不同类型的值。

3、什么是队列?

一种遵循先进先出 (FIFO / First In First Out) 原则的一组有序的项;队列在尾部添加新元素,并从头部移除元素。最新添加的元素必须排在队列的末尾

4、 什么是链表?与数组的区别是?

存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的;每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(指针/链接)组成。

数组:连续且固定长度空间,不能动态扩展,查找高效,添加修改元素低效。

链表:不需要连续内存空间,大小可动态变化,查找低效,添加修改高效。

5、什么是栈?

一种遵从先进后出 (LIFO) 原则的有序集合;新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。

栈的特点:后进先出(last-in,first-out)

6、什么是哈希及哈希冲突?

Hash也称散列、哈希,对应的英文都是Hash。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。

哈希冲突:不同的内容的hash值相同,即哈希冲突。

7、二叉树有几种遍历方式?

三种:先序遍历,中序遍历,后序遍历

8、简述冒泡排序?

基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排

0 人点赞