【数据结构与算法】栈
基本概念
栈(Stack)是一种后进先出(LIFO)原则的线性数据结构。核心操作包括:
- 压栈(Push):将元素添加到栈顶
- 出栈(Pop):移除并返回栈顶元素
- 查看栈顶(Check)获取但移除栈顶元素
- 判空(is_empty)检查栈是否为空
结构定义
使用动态数组实现栈,包含三个核心属性:
关于互联网、书籍、生活琐事以及那些一闪而过的念头
栈(Stack)是一种后进先出(LIFO)原则的线性数据结构。核心操作包括:
使用动态数组实现栈,包含三个核心属性:
通过相邻元素的两两比较,将较大的元素逐步“冒泡”到数组末尾,每轮排序确定一个最大元素的最终位置。
void bubble_sort(int arr[], int n) {
// 最外层控制循环轮数 n-1轮
for (int i = 0; i < n - 1; i++) {
// 内层循环处理相邻元素比较和交换
for(int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
// 调用
void print_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d,", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {23, 232, 55, 2, 7, 0, 576, 342};
int n = sizeof(arr) / sizeof(arr[0]);
printf("排序前:");
print_array(arr, n);
bubble_sort(arr, n);
printf("排序后");
print_array(arr, n);
}
示例验证:
机器指令,二进制数字,机器语言全局机器指令的集合,CPU通过执行一系列的机器指令完成计算工作。
汇编语言就是为了代替机器指令,使人类能够更加简单地编写程序而诞生的。汇编语言就是机器码的助记符。
没有进行配置的情况下输入中文,一般会显示<0xffffffff>,这是由于没有安装字体造成的。
sudo pacman -S noto-fonts-cjk # 安装中文字体
sudo vi /etc/locale.gen # 取消注释 zh_CN.UTF-8
sudo locale-gen # 生成语言环境
echo "export LANG=zh_CN.UTF-8" >> ~/.zshrc # 设置默认中文环境
source ~/.zshrc
source后,再次尝试输入中文,无异常。
检查是否安装全部依赖,如yay、pip等。我这里是由于没有安装pip导致的。
sudo pacman -S python-pip
安装好后,进入eaf安装目录
cd ~/.emacs.d/site-lisp/emacs-application-framework && ./install-eaf.py
重新安装eaf。等待脚本运行完成,打开emacs,输入M-x eaf-install-and-update
,等待执行完成。