内容
# MCPETRIE - ST10263164 - PROG7312
## 如何打开项目
- 打开 Visual Studio 2022
- 选择/点击 IDE 右上角的 Clone repository
- 系统会要求您输入 Git repository URL
- 导航到此项目的在线 GitHub repository 链接
- 在那里您将能够在中间上部看到一个绿色的“Code”按钮,选择它的下拉菜单
- 点击“Copy URL to Clipboard”
- 将包含 *.git 的 Git URL 输入到 IDE 的提示中
## 如何运行项目
- 完成上一步后,您可以继续运行项目
- 可以使用或不使用调试来运行
- 要查看在此部分 POE 中添加的内容,请转到视图:
- “Service Request Status List” - 查看示例数据,以便在下一个视图中使用
- 包含一个简单的报告列表
- “Service Request Status Search” - 查看使用 Binary search tree、graph 和 graph traversal 完成的操作
- 包含用户输入报告 ID 的搜索选项
- Binary Search Tree 用于快速查找输入的 ID
- Graph 和 graph traversal 也用于获取与输入的报告 ID 位于同一位置的报告列表,这些报告具有更高的优先级类别,并且需要在它之前完成
## 数据结构
### Binary Search Tree
Binary Search Tree (BTS) 用于快速搜索报告 ID。BTS 像第 1 部分中完成的链表一样,使用父/子节点,但是它具有左节点和右节点,而不是具有头节点或尾节点 (GeeksforGeeks, 2025)。这样可以快速执行搜索,因为如果结构正确;BTS 看起来像树或金字塔的根系。顶部将有一个主根(节点),并且每一层都会翻倍。Binary search tree 本质上是通过仅检查它正在搜索的值是高于还是低于树中的当前数字,然后根据该决定向左或向右移动来减少时间。这样做消除了迭代列表中每个值的需要,并大大缩短了搜索时间。
### Graph & Graph Traversal
Graph 数据结构传统上是非线性的,并且是使用顶点和边创建的 (GeeksforGeeks, 2025)。顶点(节点)和边(线)用于在图中创建关系,其中节点是数据,线是它们之间的链接。
我项目中的 Graph 用于创建报告类别和报告位置之间的关系,这允许同一位置内的多个报告基于类别的层次结构链接在一起,其想法是某些类别比其他类别更紧急,并且需要在继续处理下一个报告之前先处理这些类别
类别层次结构如下所示:
Sanitation > Electricity > Roads > Other
然后使用 Graph Traversal 来获取报告之间的依赖关系,因此,如果报告 11 和 12 位于同一位置,但报告 12 的类别为 Electricity,而报告 11 的类别为 Sanitation,则报告 11 将显示在报告 12 下方,作为其依赖项之一,因为它更重要,并且需要在市政当局考虑继续处理报告 12 之前完成。
将来可以更改此层次结构以包含更多类别或重新排序类别以创建较不线性的形状。
## Youtube:
https://youtu.be/TIYKFVPsbhw
## References
GeeksforGeeks, (2025). Binary Search Tree – Data Structure. [online] Available at: https://www.geeksforgeeks.org/dsa/binary-search-tree-data-structure/ (Accessed 13 November 2025).
GeeksforGeeks, (2025). Graph and its Representations. [online] Available at: https://www.geeksforgeeks.org/dsa/graph-and-its-representations/ (Accessed 13 November 2025).
BDRShield, (2023). Microsoft Azure Scalability: Features and Functionality. [online] Available at: https://www.bdrshield.com/blog/azure-scalability-features-and-functionality/ (Accessed 13 November 2025).
BrowserStack, (2024). Top 17 Website Launch Checklist: The Essentials. [online] Available at: https://www.browserstack.com/guide/website-launch-checklist (Accessed 13 November 2025).
GitHub Copilot (2024) Chat-based programming assistance. Microsoft, Visual Studio IDE. Available at: https://copilot.microsoft.com/ (Accessed: 10 September 2025).
OpenAI (2025) ChatGPT (GPT-5) [AI language model]. Available at: https://chat.openai.com/ (Accessed: throughout project).
Microsoft (2024) System.Collections.Generic.HashSet class. Available at: https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1?view=netframework-4.7.2 (Accessed: 15 October 2025). Microsoft (2024)
System.Collections.Generic.Dictionary<TKey,TValue> class. Available at: https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.7.2 (Accessed: 14 October 2025).
Jamro, M. (2024) C# Data Structures And Algorithms. 2nd ed. Birmingham: Packt Publishing Ltd.
连接信息
猜你喜欢
everything-claude-code
完整的 Claude Code 配置集合 - agents、skills、hooks、commands、rules、MCPs。来自 Anthropic...
Firecrawl
Firecrawl MCP Server 实现了网页抓取、爬虫和内容提取功能。
MarkItDown MCP
MarkItDown-MCP是一个轻量级服务器,用于将URI转换为Markdown。
cc-switch
跨平台的Claude Code、Codex和Gemini CLI一体化助手。
Agent-Reach
赋予你的AI Agent观察整个互联网的眼睛。读取并搜索...
servers
# 模型上下文协议服务器