【笔试面试题】(数据结构类1)概念汇总

持 续 更 新 , 努 力 学 习(嗝屁)

目录

1、描述一下栈和队列

2、数据的逻辑结构,存储结构分别有哪些?

3、结构体字节对齐怎么对齐的?

4、单链表的倒置思路

5、顺序表和链表的区别

6、什么是二叉树、满二叉树


1、描述一下栈和队列

(1)相似点:都是操作受限的线性数据结构

(2)不同点:

1、栈:遵循后进先出原则,即最后添加的元素将是第一个被移除的元素。添加(push)和删除(pop)操作都在同一端进行,即栈顶。

2、队列:遵循先进先出原则,即最先添加的元素将是第一个被移除的元素。添加操作在一端进行(队尾),而删除操作在另一端进行(队首)。


2、数据的逻辑结构,存储结构分别有哪些?

1、逻辑结构有:集合结构、线性结构、树形结构、图形结构

2、存储结构有:顺序存储、链式存储、索引存储、散列存储(哈希存储)


3、结构体字节对齐怎么对齐的?

1、结构体变量所占内存空间的大小,是各个成员所占内存空间之和

2、要遵循以下2个对齐原则

1>结构体中的每个成员,在分配内存时,要以数据类型对齐一次

2>所有成员分配内存结束后,整体需要再对齐一次(32位系统以4字节对齐,64位系统以8字节对齐)


4、单链表的倒置思路

思路1:(迭代实现)

1、将链表元素托付给一个节点(H)

2、将头节点(L)重新指向NULL

3、循环遍历,定义一个节点(p = H)用来搬运第一个节点,然后以头插的形式放入到(L)中去,这样就实现了链表的倒置

思路2:(递归实现)

1、递归出口是链表为空(head == NULL)或者链表只包含一个元素(head->next == NULL),即最后返回的就是新的头结点

2、每次递归都会将数据重新连接到新的链表之后,直到返回最初的头结点,说明链表已经逆置完成


5、顺序表和链表的区别

顺序表以数组形式在连续的内存空间中存储元素,便于频繁快速随机访问;链表通过指针将分散在内存中的元素连接起来,插入删除操作更加灵活


6、什么是二叉树、满二叉树

二叉树和满二叉树都是树形的数据结构

二叉树:每个节点最多有两个子节点

满二叉树:每个节点都有0个或2个子节点


相关推荐
CQ_071226 分钟前
自学力扣:最长连续序列
数据结构·算法·leetcode
弥彦_42 分钟前
cf1925B&C
数据结构·算法
好易学·数据结构10 小时前
可视化图解算法56:岛屿数量
数据结构·算法·leetcode·力扣·回溯·牛客网
Ashlee_code15 小时前
裂变时刻:全球关税重构下的券商交易系统跃迁路线图(2025-2027)
java·大数据·数据结构·python·云原生·区块链·perl
闻缺陷则喜何志丹16 小时前
【带权的并集查找】 P9235 [蓝桥杯 2023 省 A] 网络稳定性|省选-
数据结构·c++·蓝桥杯·洛谷·并集查找
jie*16 小时前
python(one day)——春水碧于天,画船听雨眠。
开发语言·数据结构·python·算法·线性回归
草莓熊Lotso18 小时前
【LeetCode刷题指南】--数组串联,合并两个有序数组,删除有序数组中的重复项
c语言·数据结构·其他·刷题
weixin_4196583118 小时前
数据结构之B-树
java·数据结构·b树
H_HX_xL_L18 小时前
数据结构的算法分析与线性表<1>
数据结构·算法
overFitBrain18 小时前
数据结构-2(链表)
数据结构