数据结构之栈对列串课件(编辑修改稿)内容摘要:
空。 其中的判断条件是不科学的。 实际上,当 =maxsize1,时,对列未必满,出现了 “假溢出”现象。 采用循环对列可以解决这一问题。 循环队列 循环队列就是把顺序队列的头和尾相连,构成一个闭环。 (见图) 当尾指针 =max1 时,若要插入 (删除)一个元素, 则要插入到第 0个位置, 即 [(max1)+1] % max=0 (取余数)。 若 max=8 时,要插入一个元素,应插入到第 0个位置,即 (+1) % max=(7+1) % 8=0 如何判断循环队列的“空”和“满”呢。 先看一个例子。 例:一循环队列 max =6,队列中已有 3个元素,研究其插入 3个元素后和删除 3个元素后的状态。 可以看出,不管队列是“满”还是“空”,都有front=rear。 那么,如何判断是“空”还是“满”呢。 解决方法: 1. 另设一标记,以区分队列是“空”还是“满”; 2. 不设标记,把 尾指针加 1后等于头指针 作为队 满的条件。 这样 , 队满的条件: (+1)%max= 队空的条件: = 循环队列入队函数 Int insert(Quetype Q, elementtype x) { if (( +1)%maxsize==) { printf(“队列溢出 ” )。 return(1)。 } =(+1)%maxsize。 []=x。 return(0)。 } 循环队列出队函数 { if (==) { printf (“是空队列。 \n”)。 return(1)。 } =(+1)%maxsize。 Return([]。 } 队列的应用 对于各种具有“先进先出”需排队处理的问题,都可以应用队列来解决。 例如,操作系统在管理和分配系统资源时,大量的应用了队列这种数据结构。 1) 队列在输入 /输出管理中的应用 2) 对 CPU的分配管理 返回 例 对于循环队列,试写出求队列长度的算法。 解 1:设队列的最大元素个数为 n,设一个计数器,将其初始值设为 0。 从队头开始,沿着队列顺序搜索,每搜索一个元素,计数器加 1,直到队尾,计数器的最终值即为队列的长度。 解 2:利用队头指针与队尾指针也可求出队列的长度: 当 r≥f 时, length=rf 当 rf 时, length=n(fr) 例3.2算法1 int Que_Length (Queue,int f,r,n) { int length,k。 length=0。 k=f。 while (k!=r) { length++。 k=(k+1)%n } return(length)。 } 例 2 int Que_lenrth(Queue,f,r,n) { int length=0。 if (r=f) length=rf。 else length=n(fr)。 return(length)。 } 返回 队列的链式存储结构 增设两个指针,分别指向队列的头和尾, Head …… rear 队列空时 : head rear ^ ^ 结点的定义 Typedef struct node { elementtype data。 Struct node *next。 }Qlnode。 插入结点: P head rear rear ^ x ^ 删除结点: Head rear ^ 插入算法 Int insertque(head,rear,x) { p=malloc(sizeof(Qlnode))。 If (p=null) { printf(“队列溢出” )。 Return(1)。 } Pdata=x。 pnext=null。 rearnext=p。 rear=p。 Return(0)。 } 删除算法 Deleteque (head,rear) { if (headnext=null) { prin。数据结构之栈对列串课件(编辑修改稿)
相关推荐
挖掘:路线图 布尔 vs. 定量 关联 (基于规则中所处理数据的值类型 ) buys(x, ―SQLServer‖) ^ buys(x, ―DMBook‖) buys(x, ―DBMiner‖) [%, 60%] age(x, ―30..39‖) ^ ine(x, ―42..48K‖) buys(x, ―PC‖) [1%, 75%] 单维 vs. 多维 关联
不会打破交易中的任何模式 包含了序列模式挖掘所需的全部信息 紧密 去除不相关信息 —不包含非频繁项 支持度降序排列 : 支持度高的项在 FPtree中共享的机会也高 决不会比原数据库大(如果不计算树节点的额外开销 ) 例子 : 对于 Connect4 数据库 ,压缩率超过 100 2020116 数据挖掘:概念和技术 20 用 FPtree挖掘频繁集 基本思想
关注。 42 生物学方法- 遗传算法 遗传算法的研究与生物进化理论和遗传学密切相关。 生命的基本特征包括生长、繁殖、新陈代谢和遗传与变异。 生命是进化的产物,现代的生物是在长期的进化过程中发展起来的。 达尔文提出了用自然选择来解释生物的进化过程,该学说包括遗传、变异、生存斗争和适者生存三个方面。 生物进化是非常复杂的,它将涉及诸如染色体、脱氧核糖核酸、遗传因子、种群、基因、进化、选择
生成的会可能会 Overfit 太多的分支 , 有些可能是对异常例外的反映 在进行预测的时候准确率比较差 两种 预修剪 : 难点:选择一个域值比较困难 后修建 : 先生成完整的树,然后进行修剪 使用另外一个的一个测试集来决定哪个树最好 2020年 10月 5日星期一 Data Mining: Concepts and Techniques 24 决定最终树大小的方法
本获利参数的输入对话框中,要输入: 总体(。 ) 固定成本(。 ) 单位成本(。 ) 每个收益(。 ):每个小概率事件发生时所得到的获利或是减少的损失。 2020/10/5 32 假设电话销售每打一通电话所要付出的人事、设备折旧以及办公室设备相关成本总共是 250元;而每成功销售一通的话第一年可以为公司净赚 1000元。 所以每打出去一通电话: 销售成功: 1000—
距离的分割是更有“意义”的离散化方法,考虑 : 区间内密度或点的个数 区间内点的“紧密程度 价格( $ )等宽( 宽度 $10)等深( 深度 2) 基于距离7 [ 0 , 1 0 ] [ 7 , 2 0 ] [ 7 , 7 ]20 [ 1 1 , 2 0 ] [ 2 2 , 5 0 ] [ 2 0 , 2 2 ]22 [ 2 1 , 3 0 ] [ 5 1 , 5 3 ] [ 5 0 ,