--机械CAD数据结构课件

上传人:仙*** 文档编号:241756696 上传时间:2024-07-21 格式:PPT 页数:40 大小:274KB
返回 下载 相关 举报
--机械CAD数据结构课件_第1页
第1页 / 共40页
--机械CAD数据结构课件_第2页
第2页 / 共40页
--机械CAD数据结构课件_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第二章 机械CAD/CAM常用的数据结构第一节 基本概念一、数据和数据结构 数据 是一切描述客观事物并能被计算机接受和处理的符号的集合。数据结构 是描述物体数据元素之间关系的组织形式。1010203概况三点击此处输入相关文本内容整体概况概况一点击此处输入相关文本内容概况二点击此处输入相关文本内容2具有8各顶点的图形3数据结构4数据结构包含的内容数据结构一般包含着三个内容:1)数据的逻辑结构,既数据元素之间的逻辑关系。2)数据的物理结构,既数据元素及其关系在计算机中的存储表示。3)数据的运算,即对数据进行的各种操作。5二、数据的逻辑结构和物理结构数据的逻辑结构是从解决问题的需要出发,为实现必要的功能所建立起来的数据关系,是面向问题的,它的结构形式与存储形式无关。6汽车组成的逻辑结构图 7数据的物理结构 数据的物理结构是数据在计算机中的存储形式,是面向计算机的。物理结构根据问题所要求的响应速度、处理时间、修改时间、存储空间和单位时间的处理量等建立,是逻辑数据在计算机中的存储映像。同一逻辑结构的数据可以映像出多种物理结构形式。8以数组构成的树型物理结构9三、数据项、记录、数据文件数据项描述对象性质的数值和字符统称为属性值。数据结构中把描述属性的数据称为数据项(也称为字段),数据项是构成数据的最小单位。记录 数据结构中把描述一个对象的数据称为记录(也称为数据元素、结点),记录是组成数据的基本单位。记录是相对的数据文件 若干个记录组成的数据表称为数据文件。10数据的逻辑结构分为两大类线性结构的特征是所有结点最多只有一个直接前驱结点和一个直接后继结点。非线性结构的特征是一个结点可以有多个直接前驱的结点(如网状结构)和多个后继结点(如树状结构和网状结构)。11第二节 线 性 表一、线性表的定义 线性结构中的所有结点按前驱后继关系可以排成是一个线性序列:(a1,a2,a3,ai,an)这个序列称为线性表。12线性表的存储结构分类1)顺序存储结构2)非顺序存储结构13二、线性表的顺序存储结构线性表的顺序存储就是用一组连续的存储单元按线性表数据元素的逻辑结构依次存放表中所有数据元素。知道前一个元素的地址和元素所占用的空间,也就知道它下一个或上一个元素的地址14线性顺序表的基本运算插入15删除线性表的特点1)一般是静态表2)插入删除操作时间长3)存储,读入方便16三、线性表的链式存储结构 链表 链表的存储单元可以是连续的,也可以是不连续的,不连续的链表存储单元可以通过指针来实现线性表中各数据元素之间的逻辑关系。特点不需要事先知道一张表的长度增删操作方便等优点 171.单向链表 181.单向链表 typedef struct linknode Elem Type data;struct linknode *link;node;191)建立一个单向链表 2)遍历单向链表3)查找接点4)插入接点5)删除接点单向链表不能反向查询和操作202、双向链表定义建立遍历插入删除应用21第三节 栈、队列和数组一、栈 表中结点的插入、删除运算只能在表的一端进行(LIFO表)。22栈的定义 typedef struct Elem Type s m0;Int top;stack;231.栈的压入 viod push(ST,x)stack *ST;int x;if(STtop=m0)printf (“栈上溢出!n”);else STtop=STtop+1;STs STtop=x;242.栈的弹出 void pop(ST)stack*ST;if(STtop=0)printf(“栈下溢出!n”);/*若栈空则显示相应信息*/else STtop;/*否则栈指针减1,即栈顶为下一个元素*/3.读栈顶元素4.判断栈是否为空25二、队列它只允许在表的一端进行插入,而在另一端删除(FIFO表)。26第四节 树结构 树是n(n0)个结点的有限集合T。在一棵树中要满足两个条件:1)有且仅有一个特定的称为根(root)的结点。2)其余的结点可分为m(m0)棵互不相交的有限集合T1,T2,Tn,其中每一个集合又都是一棵树,称其为根的子树(subtree)。27一般树28概念根 子树子结点、父结点、兄弟结点 边度 一个结点具有的子树数目称为该结点的度 结点A、B、C的度分别为2、3、1树的度为3 树高 叶子结点或终端结点层次 29树的存储结构不定长存储定长存储30二、二叉树它的特点是每个结点下只有左右两棵子树,且左右子树不能颠倒,否则为另一棵二叉树。二叉树有五种基本形态,如图2-20 所示,其中(a)空二叉树,(b)只有一个根结点的二叉树,(c)右子树为空的二叉树,(d)左子树为空的二叉树,(e)左右子树均为非空的二叉树。31二叉树与一般树的区别在于:1)一般树至少有一个结点,而二叉树可以为空。2)一般树的子树不区分其次序,而二叉树有左右之分,且不能颠倒。3)一般树的每一个结点可以有任意个子树,而二叉树每一个结点的子树不能超过2个。32一般树的二叉树表示:一般树表示为二叉树可以节省存储空间,处理也方便。转换表示方法:树的根结点为二叉树的根结点。根结点最左端的孩子为二叉树的左子树。根结点的其余孩子(兄弟结点)为其左端结点的右子树。33二叉树的存储struct btree struct btree*lchild;char data;struct btree*rchild;34应用(CSG树)35 三、二叉树的遍历 按一定的次序访问二叉树的每一个结点,且每个结点仅访问一次称为二叉树的遍历,对于右图所示的二叉树,按三种遍历的结果分别为:先序遍历(DLR)的结果:A、B、C、D、E、F、G、H、I中序遍历(LDR)的结果:C、D、B、E、A、H、G、F、I后序遍历(LRD)的结果:D、C、E、B、H、G、I、F、A36先序遍历(递归调用)void preorder(struct btree*node)if(!node)return;printf(n%c,node-data);/coutdata;preorder(node-lchild);preorder(node-rchild);37Q|A您的问题是?善于提问,勤于思考问答环节38结束语感谢参与本课程,也感激大家对我们工作的支持与积极的参与。课程后会发放课程满意度评估表,如果对我们课程或者工作有什么建议和意见,也请写在上边39谢谢聆听THANKYOUFORLISTENING演讲者:XX时间:202X.XX.XX40
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!