Skip to content

liu23zhi/Data-Structure

Repository files navigation

Data-Structure

这是一个关于数据结构的项目,重点研究数组、链表、栈、队列、树和图等常见数据结构的设计、实现与应用。其目的是加深对数据结构基本概念的理解,掌握各类数据结构的核心操作(插入、删除、查找和遍历),并运用相关知识解决实际编程问题。

项目结构

目录 实验类型 主题
part1/ 验证实验 分块查找(索引顺序查找)
part2/ 设计实验 有向图路径搜索
part3/ 综合实验 稀疏矩阵转置算法

编译与运行

# 编译全部项目
make all

# 交互式运行各项目(菜单驱动)
make run1   # Part1 分块查找
make run2   # Part2 图路径搜索
make run3   # Part3 稀疏矩阵转置

# 非交互式运行测试用例
make test1
make test2
make test3

I/O 交互方式

每个项目均支持以下三种交互模式(菜单选项):

选项 模式 说明
[1] 屏幕交互模式 命令行输入参数,结果输出至屏幕
[2] 文件交互模式 从输入文件读取参数,结果写入输出文件
[3] 测试用例模式 运行预定义测试案例,结果同步到屏幕和文件
[0] 退出 退出程序

文件格式

Part1 文件 (从项目根目录运行时有效):

  • 输入:part1-input.txt,首行为查找关键字个数,之后每行一个关键字
  • 输出:part1-output.txt

Part2 文件

  • 输入:part2-input.txt,首行为查询对数,之后每行 src dst
  • 输出:part2-output.txt

Part3 文件

  • 输入:part3-input.txt,首行为 rows cols,之后 rows 行每行 cols 个整数
  • 输出:part3-output.txt

测试案例设计

各项目使用等价类划分与边界值分析方法设计测试案例:

Part1(分块查找)— 5个测试案例:

  • TC1:正常案例 — key=46(存在,第3块)
  • TC2:边界值 — key=6(最小元素,第1块)
  • TC3:边界值 — key=100(最大元素,第5块)
  • TC4:等价类 — key=50(不存在,在第3块范围内)
  • TC5:边界值 — key=0(低于所有元素,查找失败)

Part2(图路径搜索)— 4个测试案例:

  • TC1:正常案例 — src=5, dst=2(多条路径)
  • TC2:正常案例 — src=5, dst=6(路径经过4→6)
  • TC3:等价类 — src=2, dst=5(不可达,顶点2无出边)
  • TC4:边界值 — src=1, dst=1(起点等于终点)

Part3(稀疏矩阵转置)— 4个测试案例:

  • TC1:正常案例 — 6×6默认稀疏矩阵
  • TC2:边界值 — 全零3×3矩阵(terms=0)
  • TC3:等价类 — 2×3非方阵(rows≠cols)
  • TC4:边界值 — 1×1矩阵(最小矩阵)

About

这是一个关于数据结构的项目,重点研究数组、链表、栈、队列、树和图等常见数据结构的设计、实现与应用。其目的是加深对数据结构基本概念的理解,掌握各类数据结构的核心操作(插入、删除、查找和遍历),并运用相关知识解决实际编程问题。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors