bsjzx9 bsjzx9
关注数: 21 粉丝数: 302 发帖数: 440 关注贴吧数: 8
数据结构图 图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对多的数据结构。 1、基本概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 注意:线性表中可以没有元素,称为空表。树中可以没有结点,叫做空树。但是在图中不允许没有顶点,可以没有边。 基本术语: 无向边:若顶点Vi和Vj之间的边没有方向,称这条边为无向边(Edge),用(Vi,Vj)来表示。 无向图(Undirected graphs):图中任意两个顶点的边都是无向边。 有向边:若从顶点Vi到Vj的边有方向,称这条边为有向边,也称为弧(Arc),用<Vi, Vj>来表示,其中Vi称为弧尾(Tail),Vj称为弧头(Head)。 有向图(Directed graphs):图中任意两个顶点的边都是有向边。 简单图:不存在自环(顶点到其自身的边)和重边(完全相同的边)的图 无向完全图:无向图中,任意两个顶点之间都存在边。 有向完全图:有向图中,任意两个顶点之间都存在方向相反的两条弧。 稀疏图;有很少条边或弧的图称为稀疏图,反之称为稠密图。 权(Weight):表示从图中一个顶点到另一个顶点的距离或耗费。 网:带有权重的图 度:与特定顶点相连接的边数; 出度、入度:有向图中的概念,出度表示以此顶点为起点的边的数目,入度表示以此顶点为终点的边的数目; 环:第一个顶点和最后一个顶点相同的路径; 简单环:除去第一个顶点和最后一个顶点后没有重复顶点的环; 连通图:任意两个顶点都相互连通的图; 极大连通子图:包含竟可能多的顶点(必须是连通的),即找不到另外一个顶点,使得此顶点能够连接到此极大连通子图的任意一个顶点; 连通分量:极大连通子图的数量; 强连通图:此为有向图的概念,表示任意两个顶点a,b,使得a能够连接到b,b也能连接到a 的图; 生成树:n个顶点,n-1条边,并且保证n个顶点相互连通(不存在环); 最小生成树:此生成树的边的权重之和是所有生成树中最小的; AOV网( Activity On Vertex Network ):在有向图中若以顶点表示活动,有向边表示活动之间的先后关系 AOE网( Activity On Edge Network):在带权有向图中若以顶点表示事件,有向边表示活动,边上的权值表示该活动持续的时间 2、图的存储结构 由于图的结构比较复杂,任意两个顶点之间都可能存在关系,因此用简单的顺序存储来表示图是不可能,而若使用多重链表的方式(即一个数据域多个指针域的结点来表示),这将会出现严重的空间浪费或操作不便。这里总结一下常用的表示图的方法: 2.1、邻接矩阵 图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称邻接矩阵)存储图中的边或弧的信息。
传奇源码客户端源码文件说明! mir2res文件结构 Grobal2.pas,,,客户端和服务端通用的文件,定义了一些消息标识,数据结构,消息操作函数 Actor.pas,,,精灵(包括人物heros,npc,怪物mon)类,但是主要是heros类,NPC以及mon类派生于actor类 FState.dfm,,,各个子窗口,如f11,,f9等快捷键调出的窗口等 clmain.dfm,,cl-client,,客户端主界面窗体,打开可以看到它use了Fstate.dfm fstate.pas,,FState.dfm的模块文件,,结合DWinCtl.pas和delphix中的绘图函数绘制各个子窗口在DDraw下真实效果的模块 IntroScn.pas 游戏的引导场景实现,比如登录选人等 clmain.pas,,clmain.dfm对应的源程序文件,,处理了程序启动时的网络连接,载入的wil客户端文件,等一系列操作 WIL.pas 比较重要的文件之一,,在原delphix图像包装类的基础上改装而成,封装了wil文件及其全部操作(结合wmUtil) clEvent.pas 事件管理池(消息守护线程) DWinCtl.pas 提供几个在DX下使用的控件 mir2.res 可能只有一个图标吧,就是那个龙字样的 SoundUtil.pas wav文件夹内声音文件的调用操作 wemade.pal 调色板文件 mir2.dpr 工程文件 EDCode.pas 消息加解密函数,6BIT加密算法的具体实现,用wpe截到的封包都是加密格式的,去掉密文前的!和最后的@ ClFunc.pas 输助函数库 MapUnit.pas 地图单元 AxeMon.pas 怪物单元,包含怪物在客户端的攻击等效果的实现,由actor类派生,不知为什么命名为axemon斧怪? 怪物对主角的伤害等算法当然不包含在,这是服务器res的工作 HerbActor.pas 不能移动的精灵(怪物,有生命的墙体如沙皇宫门,herb,睡眠的) PlayScn.pas 相对于引导场景,这里是游戏主场景画面实现 DrawScrn.pas 整个游戏场景的最终绘图工作 Soundfx.h 音乐文件操作的预编译头 magiceff.pas 客户端魔法效果的绘制与表现,当然也不包括魔法伤害实现. hutil32.pas,cliUtil.pas 包含一些输助函数等
1 下一页