From 446ef0c8a91ad77fd6e140b6f5da7121e6165eee Mon Sep 17 00:00:00 2001 From: yujia jin <3225852021@qq.com> Date: Sun, 18 Jun 2023 22:57:52 +0800 Subject: [PATCH] 123 --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 5c726d1..fada7c8 100644 --- a/README.md +++ b/README.md @@ -110,24 +110,68 @@ ADT Queue{ ``` ## 2.2 数据结构设计 -首先,分析对比几种可选的数据结构设计方案。如图可以采用邻接矩阵,也可以采用邻接表,表示集合可以用普通的查找表,还可以用不相交集。给出每一种设计方案的特点(优势、不足等)。然后,综合考虑各种因素(空间、时间、乃至团队成员的水平等),给出你的选择。 +运用链队列、链表的数据结构,使银行业务的模拟更加高效的完成。链表和链队列的结构,更加形象的体现了客户的在银行的排队、业务办理、离开的流程。 + +### (1)链表结构 +Status InitList(LinkList& L);//链表初始化 +Status ListInsert(LinkList& L,int i,ElemType e);//在第i个位置前即i-1的位置上插入元素e +Status ListEmpty(LinkList L);//判断链表是否为空 +Status DelFirst(LinkList L,LNode*& q);//删除链表中第一个结点并以q返回 +LNode* GetHead(LinkList L);//返回链表头结点 +ElemType GetCurElem(LNode* p);//返回p所指结点元素的值 +void PrintEventList();//打印事件链表 +Status ListTraverse(LinkList& L);//遍历链表 +### (2)链队列结构 +Status InitQueue(LinkQueue& Q);//链队列的初始化 +Status EnQueue(LinkQueue& Q,QElemType e);//入队列 +Status DeQueue(LinkQueue& Q,QElemType& e);//出队列 +int QueueLength(LinkQueue Q);//返回队列长度 +Status GetHead(LinkQueue Q,QElemType& e)//返回队头元素 +注:由于参数个数会发生变化,函数会发生重载 +Status QueueEmpty(LinkQueue Q);//判断队列是否为空 +void PrintQueue();//打印队列 +Status QueueTraverse(LinkQueue Q);//遍历队列 -### (1)xxx结构 -给出核心数据结构的设计,包括文字描述和示意图。讲清楚数据是如何组织的。多个数据结构,逐一列出。 -### (2)xxx结构 -给出核心数据结构的设计,包括文字描述和示意图。讲清楚数据是如何组织的。 +## 2.3 算法设计 +主要运用排序、链表、队列、判断最短队列、比较事件先后等算法完成银行业务的模拟,体现了整个业务的可行性、完整性、简洁性、高效性。 +### (1)链表判空算法 +```` +判断链表是否为空 +If链表为空 +返回FALSE +ELSE +返回TRUE +```` +### (2)银行业务模拟算法 +```` +引入OpenForDay函数 +WHILE链表非空 +引入DelFrist函数、GetCurElem函数、GetHead函数、CustomerArrived函数、CustomerDepature函数等计算客户平均逗留时间 +```` -## 2.3 算法设计 -首先,分析对比几种可选的算法设计方案。如是否排序,广度优先或深度优先搜索等。给出每一种设计方案的特点(优势、不足)。然后,综合考虑各种因素(空间、时间、乃至团队成员的水平等),给出你的选择。 +### (3)比较事件先后算法 +```` +IF a事件时间>b事件时间 +返回 1 +IF a事件时间=b事件时间 +返回 0 +IF a事件时间< b事件时间 +返回-1 +```` + +### (4)求最短队列算法 +```` +初始化最短队列为Q[1] +FOR 从Q[2]开始循环 +IF 最短长度>Q[j] +最短长度=Q[j] +返回队列j +```` -### (1)XXX算法 -给出核心算法的设计,包括伪代码或流程图。多个核心算法,逐一列出。只列举解决问题的核心算法,重点讲清楚是如何解决问题的。 -### (2)XXX算法 -给出核心算法的设计,包括伪代码或流程图。