机械cad中常用的数据结构.ppt
《机械cad中常用的数据结构.ppt》由会员分享,可在线阅读,更多相关《机械cad中常用的数据结构.ppt(77页珍藏版)》请在三一办公上搜索。
1、第1篇 CAD基础,4 机械CAD中常用的数据结构,本章目标掌握机械CAD中常用的数据结构,本章学习要点线性表的存储结构以及对线性表的建立、访问、修改、删除和插入的运算栈的存储结构以及对栈的建立、进栈和出栈的运算树的存储结构二叉树的存储结构以及对二叉树的遍历运算,4 机械CAD中常用的数据结构,数据 是对客观事物的符号表示,是指所有能输入计算机内并被计算机处理的符号的总称。,4.1 基本概念,数值、字符是数据,图形、图像也是数据。,数据元素 是数据的基本单位,是数据这个集合中相对独立的个体。,零件可以作为产品或部件的数据元素,圆柱体、长方体可以作为零件形体的数据元素,直线、圆弧可以作为图形的数
2、据元素。,4.1 基本概念,数据的逻辑结构 是只考虑数据之间的逻辑关系,独立于数据的存储介质。通常所说的数据结构就是指数据的逻辑结构。,4.1 基本概念,数据的逻辑结构 是只考虑数据之间的逻辑关系,独立于数据的存储介质。通常所说的数据结构就是指数据的逻辑结构。,4.1 基本概念,数据的物理结构 也称为数据的存储结构,是数据元素和它们之间的关系在计算机中的表示。,4.1 基本概念,结点,用一个位串表示一个数据元素,称这样的位串为一个,结 点,结点是数据元素在计算机中的映像,4.1 基本概念,机械CAD中常用的数据结构,线性表,栈,树,二叉树,线性表是一种最常用且最简单的数据结构,是n个数据元素的
3、有限序列(a1、a2、an)。,数据元素ai可以是一个数、一个符号,也可以是一个线性表,甚至是更复杂的数据结构。,4.2 线性表,例如:六角头螺栓(GB/T 5780-2000)的螺纹规格 d 可以构成一个简单的线性表(3,4,5,6,8,10,12,16,20,24,30,36,42),4.2 线性表,例如:减速箱明细表,表中的数据元素是由序号、名称、数量和材料4个简单数据组成的一个记录。,减速箱明细表,4.2 线性表,从上面两个实例中可以看出,尽管线性表中的数据元素可能是各种各样的,但同一表中数据元素的类型必须是相同的。,4.2 线性表,除了第一个和最后一个数据元素外,每个数据元素有且只有
4、一个直接前趋,有且只有一个直接后继。,4.2 线性表,4.2.1 线性表的顺序存储结构,用一组连续的存储单元按线性表数据元素的逻辑结构依次存放表中所有数据元素。,4.2 线性表,特点:,(1)有序性:各数据元素之间的存储顺序与逻辑顺序一致,(2)均匀性:每个数据元素所占存储空间的长度相等,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,建表,访问,修改,删除,插入,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,static char listc=A,B,C,D,E;,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插
5、入,6,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,char c;c=listc2;,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,Listc2=T;,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,4.2.1 线性表的顺序存储结构,
6、4.2 线性表,从线性表中删除一个数据元素后还必须保持这个线性表的均匀性和有序性,因此被删除元素之后的所有元素均应向前移动,移动距离为一个数据元素所占存储空间的长度。,操作:,#define LEN 6main()static char listcLEN=(A,B,C,D,E;int i,j;printf(“删除第几个数据元素?“);scanf(“%d”,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,4.2.1 线性表的顺序存储结构,4.2 线性表,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,线性表listc有5个数
7、据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,将一个新的数据元素插入到线性表的第i个位置,即插入第i-1元素和第i个元素之间。为了保证线性表的均匀性,新的数据必须和表内已有元素的类型一致;为了保证线性表的有序性,原线性表第i至最后一个元素要向后移动一个数据元素所占存储空间的长度,4.2.1 线性表的顺序存储结构,4.2 线性表,操作:,#define LEN 6main()static char listcLEN=(A,B,C,D,E;int i,j;char cl;printf(“输入新的数据元素“);c1=getche();printf(“输入新的数
8、据元素的位置“);scanf(“%d”,线性表listc有5个数据(A,B,C,D,E),用C语言编写程序实现此类操作,建表,访问,修改,删除,插入,优缺点:1)线性表在顺序结构中对数据元素的访问(读取)、修改快而方便,但在删除和插入运算时,需要对数据元素作大量的移动。2)由于线性表是一个静态表,只有运行前进行定义,定义完成后,大小不能改变。,4.2.1 线性表的顺序存储结构,4.2 线性表,应用:多用于查找频繁、很少增删的场合,例如工程手册中的数据表。,4.2.1 线性表的顺序存储结构,4.2 线性表,链式存储结构的特点,4.2.2 线性表的链式存储结构,4.2 线性表,单向链表:,单向链表
9、结点的指针域只有一个,通常存放直接后继的地址。,4.2.2 线性表的链式存储结构,4.2 线性表,单向链表:,假定线性表(A,B,C,D,E),将其按单向链表存储,数据操作:访问、修改、删除、插入,4.2.2 线性表的链式存储结构,4.2 线性表,删 除,建 立,访 问,查 找,修 改,首先定义结点的数据类型,它有两个成员:data和next。data用来存放数据元素本身,本例是字符型的;next存放该结点直接后继的地址,所以它必须是指针型的,而且是指向字符型变量的指针。链表不必指出它的长度,而是根据需要动态的申请存储空间。,删 除,建 立,访 问,查 找,修 改,/*定义结点的数据结构*/s
10、truct link char data;/*数据域*/structure link*next;/*指向直接后继的指针*/*head;/*链头结点指针,是全局变量*/,删 除,建 立,访 问,查 找,修 改,/*建立一个单向链表*/void create(void)int i,LEN=5;/*链表初始长度为5*/struct link*node,*temp;for(i=0;idata=A+i;node-next=NULL;if(i=0)head=temp=node;else temp-next=node;temp=node;,删 除,访 问,查 找,修 改,链表的逻辑顺序与存储顺序无关,如果访
11、问第i个元素,首先通过链头结点head找到第1个结点的地址,再根据这个结点的指针域找到下一个结点的地址,直至找到第i个结点的地址,再访问这个结点的数据域。,删 除,访 问,查 找,修 改,删 除,访 问,查 找,修 改,/*访问第 i 个数据元素*/char visit(int i)int j=1;struct link*temp;temp=head;while(temp)if(j+=i)return(temp-data);temp=temp-next;printf(“序号超出链表的范围!”);return(0);,删 除,修 改,查 找,在链表中查找是否有指定的数据元素,若有就输出第一次出现
12、这个数据元素的逻辑位置,否则输出没有这个数据元素的信息。,删 除,修 改,查 找,/*查找特定数据元素的结点*/int search(char c)int i=1;struct link*temp;temp=head;while(temp)if(temp-data=c)return(i);i+;temp=temp-next;printf(“没有找到这个数据!”);return(0);,删 除,修 改,查 找,修改第i个数据元素的值时,首先找到这个数据元素的结点。若修改指定数据元素的值,同样先找到这个数据元素的结点,再修改这个结点的数据域即可。,删 除,查 找,若要删除第i个数据元素,需找到第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 cad 常用 数据结构

链接地址:https://www.31ppt.com/p-5061292.html