CAD中常用数据结构.pptVIP

  • 30
  • 0
  • 约6.06千字
  • 约 37页
  • 2019-11-06 发布于广东
  • 举报
中序遍历的算法 中序遍历示意图 中序遍历的算法框图 TOP –栈顶指针 P—指向结点的指针 N Y 3. 二叉排序树 排序就是对一组无序的数据按递增或递减的规律重新排列。 二叉排序树是树形结构的一种简单应用,它可以把原来是无序的线性表变成有序的线性表。 对数组{18,14,22,7,17,20,35,27, 11,3,20}的排序结果 假设: 如果一棵二叉排序树不空,那么 根结点上所有左子树上的结点都 小于根结点,所有右子树上的结 点都不小于根结点。这个定义也 是一个递归的定义。 建立二叉排序树的算法: 设有一个序列T={t1,t2,t3,…tn} (1)令t1为二叉树的根结点 (2)以ti与二叉树的根结点作比较:若ti小 于根结点,则将ti插入到左子树中; 否则插入到有子树中; (3)对ti (i=2,3,…,n)所有的递归重 复步骤(2)即可。 中序遍历二叉树—变量定义 #include stdafx.h #include stdio.h #include malloc.h typedef struct _tagLink { struct _tagLink *LC,*RC; int data; } LINK; LINK *Head; int A[]={18,14,22,7,17,20,35,27,11,3,20}; int N=sizeof(A)/sizeof(int); 中序遍历二叉树--建立二叉树 void built() { for(int i=0; iN; i++) { LINK *Node,*Temp; Node=(LINK *)malloc(sizeof(LINK)); Node-data=A[i]; Node-LC=Node-RC=NULL; if(i==0) {Head=Node; continue;} Temp=Head; for(;;) { if(A[i]Temp-data) { if(Temp-LC==NULL) {Temp-LC=Node; break;} else Temp=Temp-LC; } else { if(Temp-RC==NULL) {Temp-RC=Node; break;} else Temp=Temp-RC; } } } } 中序遍历二叉树—输出 void output() { LINK *stack[50]; int TOP=0; LINK *P=Head; for(;;) { if(P!=NULL) { stack[TOP++]=P; P=P-LC; } else { if(TOP==0) break; P=stack[--TOP]; printf(%d\n,P-data); P=P-RC; } } } 中序遍历二叉树—主程序 int main(int argc, char* argv[]) { built(); output(); return 0; } 济南大学机械工程学院 第2章 CAD中常用的数据结构 用计算机语言编写数值计算程序时,首先需要对变量进行数据类型说明,才能把数据提供给变量,由计算机对其进行存取和计算等操作。如C语言中的整型、浮点型等,数据类型实际上是语言系统提供的数据结构。 计算机不仅要处理数值计算问题,还要大量地处理包括图形、图像、文字、表格、声音等各种各样复杂的问题,这时提供给计算机的已不只是简单的、孤立的数据,而是存在某些关系的数据。 1 3 3 5 5 2 2 4 4 1 1 2 2 3 3 4 4 5 5 1 X1 Y1 X2 Y2 X3 Y3 X4 Y4 X5 Y5 (a)五个顶点 (b)五边形 (c)五角形 (a)五边形与屋角形 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 2.1 基本概念 数据 数据是描述客观事物的数字、字符及所有能输入到计算机中并可被计算机接受和处理的各种符号的集合。 数据元素 数据元素是数据的基本单位,是数据这个集合中的一个个体。 数据的逻辑结构和物理结构 数据的逻辑结构仅考虑数据之间的逻辑关系,数据结构一般指数据的逻辑结构。它独立于数据的存储介质。 数据的物理结构也称存储结构,是数据的逻辑结构在计算机中的映象。 计算机处理数据的最小单位叫做位(Bit),一个位表示一个二进制的数,若干位组合起来形成一个位串。 用一个位串表示一个数据元素,称这个位串为一个节点。节点是数据元素在计算机中的映象。 映象的方法不同,数据元素在计算机中的存储结构也不同。顺序映象得到顺序的存储结构,非顺序映象得到

文档评论(0)

1亿VIP精品文档

相关文档