- 博客(16)
- 收藏
- 关注
原创 第二学期——栈和队列的基础知识
双端队列(Deque):两端都可以进出,非常灵活,既当栈又当队列(如Java的ArrayDeque)。快慢指针(也叫龟兔赛跑算法)是双指针的一种特殊用法——两个指针从同一起点出发,慢指针每次走1步,快指针每次走2步,利用它们的“速度差”来解决问题。实现方式:既可以用数组(顺序栈,连续内存,省空间但扩容耗时),也可以用链表(链式栈,动态内存,无扩容问题)。核心操作:push(入栈,在顶部添加)、pop(出栈,移除顶部)、peek/top(查看顶部元素)。模拟示例 [“2”,“1”,“+”,“3”,“*”]
2026-09-08 12:03:41
178
原创 第二学期——栈与队列
循环队列是队列的一种高效实现方式,主要用来解决顺序队列(数组实现)的“假溢出”问题。栈:函数调用(递归)、浏览器的“后退”按钮、括号匹配、撤销操作(Ctrl+Z)。队列:入队(Enqueue)、出队(Dequeue)、取队首(Front)。队列:打印机任务排队、消息队列、CPU进程调度(公平轮转)、树的层序遍历。· 问题:队尾到数组末尾了,但队首前面还有空位,无法再入队,造成空间浪费。栈:入栈(Push)、出栈(Pop)、取栈顶(Top)。两者都可用数组(顺序存储)或链表(链式存储)实现。
2026-09-08 11:04:01
205
原创 第二学期——链表、递归
第1轮:next=2,1.next=None,prev=1,curr=2 → 1→None。· 第2轮:next=3,2.next=1,prev=2,curr=3 → 2→1→None。· 增删:数组中间增删慢(需移动元素),链表快(只需改指针,O(1) 前提是已知位置)。· 指针域:存储指向下一个节点的引用(单向链表)或上下节点的引用(双向链表)· 基准情况(Base Case):最简单的情形,直接返回结果,不再递归。· 访问:数组随机访问快(O(1)),链表只能顺序访问(O(n))。
2026-09-07 12:01:22
159
原创 第二学期——数组、二分查找
防止 left+right 溢出:可用 mid = left + (right - left) // 2(但Python整数无上限,此写法更通用)。· 在Java/Python中:Java的ArrayList、Python的list是动态数组,可扩容。推荐 <=,这样区间是闭区间 [left, right],逻辑更统一。· 优缺点:查找快,但插入和删除慢(需移动大量元素),且大小通常固定(静态数组)。· 特点:存储在连续内存空间,通过索引(下标)访问,时间复杂度 O(1)。· 相等 → 返回mid。
2026-09-04 11:56:49
159
原创 第十一章—— 使用结构化命令
[ “$str” == *“.txt” ]] 通配符匹配(仅双方括号) 匹配以.txt结尾。文件测试用错 [ -e /dir ] 判断文件 [ -f /file ] 判断文件。数值比较用= [ $a = 5 ] [ $a -eq 5 ]-le 小于等于 [ $a -le 100 ]-ge 大于等于 [ $a -ge 0 ]-eq 等于 [ $a -eq 10 ]-ne 不等于 [ $a -ne 5 ]
2026-09-03 11:36:43
165
原创 第十章小结部分—— 构建基本脚本
28-30 数学运算 $(( )) $((100 - CPU_IDLE))33-35 bc 浮点运算 echo “scale=2;38-40 条件测试 [ ] [ $CPU_USAGE -gt。完整示例脚本:system_health_check.sh。20 重定向错误 2>/dev/null 丢弃错误信息。85-89 退出码 exit 成功返回0,失败返回1。7-12 变量定义与引用 HOSTNAME=(systemctl …代码行号 涉及知识点 具体示例。循环遍历数组处理多个服务。
2026-09-03 11:29:12
170
原创 第九章—— 编辑器
进程隔离:作为独立GUI进程,与终端Shell无直接继承关系,环境变量通过 systemd --user 或 D-Bus 启动器传递,因此不受 ~/.bashrc 影响——这是图形与终端环境隔离的典型案例。· 设计取舍:两者均深度绑定KDE的 I/O 抽象层(KIO),这意味着它们可以透明地编辑 ftp:// 或 sftp:// 上的文件——这是终端编辑器难以原生提供的网络透明性。· 进程模型:终端内运行,依赖 $TERM,通过 tty 与内核交互,极低资源消耗,无图形栈依赖,适合嵌入式与应急环境。
2026-09-02 11:29:21
191
原创 第七、八章—— 理解Linux 文件权限
登录Shell(如通过SSH或tty登录) /etc/profile → ~/.profile 或 ~/.bash_profile 设置系统级全局变量、执行登录时的欢迎信息。· 作用:当你在命令行输入 ls 或 python 时,Shell会按 PATH 中列出的目录顺序(冒号 : 分隔)依次查找同名可执行文件,找到即执行。· 持久化:想每次登录自动生效,需将 export 语句写入 ~/.bashrc(当前用户)或 /etc/profile(全局,需root权限)。· 关键区别:子进程能否继承该变量。
2026-09-02 11:22:16
201
原创 第六章作业—— 理解Shell
这就是为什么:脚本里 cd /xxx 后脚本退出,当前目录不变,因为 cd 只在子 Shell 进程里生效。· 关系:子 Shell 会继承父 Shell 的环境变量(export 过的),但不继承普通变量。· 子 Shell:由父 Shell 派生出来的新 Shell 进程(比如执行脚本或敲括号时)。· 父 Shell:你打开终端时启动的 Bash 进程(比如 PID=1000)。这就是利用子 Shell 的特性——括号里的 cd 不影响父 Shell。想不切换目录临时进某文件夹操作?
2026-09-01 11:19:11
195
原创 第五章小结—— 更多的bash shell 命令
配合 -z(gzip)或 -j(bzip2)才压缩。常用:sort -t’:’ -k3 -n /etc/passwd(按冒号分隔的第3列数字排序)。常用:ps aux(所有进程)、ps -ef(标准格式)。top(动态实时):像任务管理器,持续刷新 CPU/内存占用,交互式排查卡顿首选。常用解压:tar -xzvf archive.tar.gz解压到指定目录必须加 -C,否则原地解压乱成一团。经典组合:grep -rn “error” ./(递归当前目录找所有含 error 的文件)。top 退出按 q。
2026-09-01 11:14:32
175
原创 第四次作业—— Shell 的基础知识和常用命令
全程使用 pwd 确认路径,未使用图形界面。若 tree 输出匹配要求,即任务完成。如有任何差异,请检查每一步的当前目录是否正确。第五步:模拟备份文件(在 backups/ 下放一个示例备份)第四步:在 references/ 下创建项目状态文件。第三步:在 lectures/ 下创建两个文本文件。第六步:验证最终结构(使用 tree)第一步:确认当前目录,创建项目主目录。
2026-08-31 12:14:25
184
原创 第三次作业—— 远程连接虚拟机
配套技巧:Xshell里可以直接点工具栏绿色图标,一键打开对应Xftp会话,不用重复填IP密码。是Linux的帮助手册命令, man man 就是查看 man 命令自己的帮助文档。找到网卡的inet地址,例如 192.168.137.128 ,记下这个IP。Xshell(远程SSH连接虚拟机,命令行操作)1、Xshell + Xftp 使用教程。Xftp(文件上传下载,图形化传文件)2、 man man 命令结果与解释。退出man页面:按键盘 q 键。1 可执行程序或shell命令。Xshell新建会话。
2026-08-31 12:04:59
228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅