精华内容
下载资源
问答
  • 二叉树的基本功能: 1、二叉树的建立 2、前序遍历二叉树 3、中序遍历二叉树 4、后序遍历二叉树 5、按层序遍历二叉树 6、求二叉树的深度 7、求指定结点到根的路径 8、二叉树的销毁 9、其他:自定义操作
  • 二叉树的抽象数据类型定义

    千次阅读 2019-08-29 16:22:23
    类型名称:二叉树 数据对象集:一个有穷的结点集合。 若不为空,则由根结点和其左、右二叉子树组成。 操作集: BT ∈ BinTree, Item ∈ElementType,重要操作有: 1、Boolean IsEmpty( BinTree BT ): 判别BT是否为...

    类型名称:二叉树
    数据对象集:一个有穷的结点集合。
    若不为空,则由根结点和其左、右二叉子树组成。
    操作集: BT ∈ BinTree, Item ∈ElementType,重要操作有:
    1、Boolean IsEmpty( BinTree BT ): 判别BT是否为空;
    2、void Traversal( BinTree BT ):遍历,按某顺序访问每个结点;
    3、BinTree CreatBinTree( ):创建一个二叉树。

    常用的遍历方法有:

    • void PreOrderTraversal( BinTree BT ):先序----根、左子树、右子树;
    • void InOrderTraversal( BinTree BT ): 中序—左子树、根、右子树;
    • void PostOrderTraversal( BinTree BT ):后序—左子树、右子树、根
    • void LevelOrderTraversal( BinTree BT ):层次遍历,从上到下、从左到右
    展开全文
  • 3、子串与主中任意个数的连续字符组成的子序列称为该的子串,相应的包含子串的称为主,子串子啊主中的位置就是子串第一个字符在主中的位置。(例如:ove是over的子串) 4、得到基本操作StrAssign...

    1、串是由一个或多个字符组成的有序数列,又叫字符串。
    2、空格串是只包含空格的串,有长度有内容,而且可以不止一个空格。
    3、子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应的包含子串的串称为主串,子串子啊主串中的位置就是子串第一个字符在主串中的位置。(例如:ove是over的子串)
    4、串得到基本操作

    StrAssign(&T,chars)  //生成一个其值等于chars的串T
    StrCopy(&T,S)  //由串S复制得到串T 
    StrEmpty(S)  //若串为空串返回TRUE否则返回FALSE
    StrLength(S)  //返回s的元素个数称为串的长度
    StrCompare(S,T)   // S>T 返回 >0 ; S=T ,返回 =0 ; S<T 返回 <0
    ClearString(&S)  //将串S清空
    SubString(&Sub,S,pos,len)   //用sub返回串S的第pos个字符起长度为len的子串
    Index(S,T,pos)   // 若子串中存在和串T值相同的子串,则返回它在主串中第pos个字符之后第一次出现的位置 ;否则函数值为0
    Replace(&S,T,V)  //用V替换串S中出现的所有与T相等的不重叠的子串
    StrInsert(&S,pos,T)  //在串S的第pos个字符之前插入串T
    StrDelete(&S,pos,len)   //从串S中删除从第pos个字符起出长度为len的子串
    DestroyString(&S)  //串S被销毁 
    展开全文
  • 抽象数据类型定义(ADT)

    万次阅读 多人点赞 2014-03-16 16:03:56
    一、抽象数据类型定义(ADT) 作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。 定义:一个数学模型以及定义在该模型上的一组操作。 关键:使用它的人...

    一、抽象数据类型定义(ADT)

    作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。

    定义:一个数学模型以及定义在该模型上的一组操作。

    关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。

    例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。

    抽象数据类型分类
    原子类型值不可分解,如int
    固定聚合类型值由确定数目的成分按某种结构组成,如复数
    可变聚合类型值的成分数目不确定如学生基本情况

    抽象数据类型表示法:

    一、

    三元组表示:(D,S,P)

    其中D是数据对象,S是D上的关系集,P是对D的基本操作集。

    二、书中的定义格式:

    ADT 抽象数据类型名{

    数据对象:<数据对象的定义>

    数据关系:<数据关系的定义>

    基本操作:<基本操作的定义>

    }ADT 抽象数据类型名

    例:线性表的表示

    名称线性表 
    数据对象D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}任意数据元素的集合
    数据关系R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n}除第一个和最后一个外,每个元素有唯一的直接前趋和唯一的直接后继
    基本操作ListInsert(&L,i,e)L为线性表,i为位置,e为数据元素。
    ListDelete(&L,i,e)
    ...

    二、类C语言语法

    类C语言语法示例
    1、预定义常量和类型#define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define INFEASIBLE -1
    #define OVERFLOW -2
    typedef in Status; //Status是函数的类型,其值是函数结果状态代码。
    2、数据结构的存储结构typedef ElemType first;
    3、基本操作的算法

    函数类型 函数名(函数参数表){
    //算法说明
    语句序列
    }//函数名

    4、赋值语句简单赋值:变量名=表达式;
    串联赋值:变量名1=变量名2=...=变量名k=表达式;
    成组赋值:(变量名1,...,变量名k)=(表达式1,...,表达式k);
    结构名=结构名;
    结构名=(值1,...,值k);
    变量名[]=表达式;
    变量名[起始下标..终止下标]=变量名[起始下标..终止下标]; 
    交换赋值:变量名<-->变量名;
    条件赋值:变量名=条件表达式?表达式?表达式T:表达式F
    5、选择语句

    1、if(表达式) 语句;
    2、if(表达式) 语句;
    else 语句;
    3、switch(表达式){
    case 值1:语句序列1;break;

    ...
    case 值n:语句序列n;break; 
    default:语句序列n+1;break; 
    }
    4、switch{
    case 条件1:语句序列1;break;

    ...
    case 条件n:语句序列n;break; 
    default:语句序列n+1;break; 
    }

    6、循环语句for(赋初值表达式;条件;修改表达式序列)语句;
    while(条件)语句;
    do{ 语句序列}while(条件);
    7、结束语句

    return [表达式];
    return; //函数结束语句
    break; //case结束语句
    exit(异常代码); //异常结束语句

    8、输入和输出语句scanf([格式串],变量1,...,变量n);
    9、注释//文字序列
    10、基本函数max(表达式1,...,表达式n)
    min,abs,floor,ceil,eof,eoln
    11、逻辑运算&&与运算;||或运算

    例:线性表的实现:
    ADT List{

    数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}

    数据关系: R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n}

    基本操作:

    InitList(&L)
    DestroyList(&L)
    ListInsert(&L,i,e)
    ListDelete(&L,i,&e)

    }ADT List

    ListInsert(List &L,int i,ElemType e)

    {if(i<1||i>L.length+) return ERROR;

    q=&(L.elem[i-1]);

    for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;

    *q=e;

    ++L.length;

    return OK;

    }

    下面是C语言编译通过的示例

    #define ERROR 0 
    #define OK 1 
    struct STU
    { char name[20];
    char stuno[10]; 
    int age; int score; 
    }stu[50]; 
    struct LIST 
    { struct STU stu[50]; 
    int length; 
    }L; 

    int printlist(struct LIST L)
    { int i;
    printf("name stuno age score/n"); 
    for(i=0;i<L.length;i++) 
    printf("%s %s/t%d/t%d/n", L.stu[i].name, L.stu[i].stuno, L.stu[i].age, L.stu[i].score); 
    printf("/n"); 
    }

    int listinsert(struct LIST *L,int i,struct STU e) 
    { struct STU *p,*q; 
    if (i<1||i>L->length+1) 
    return ERROR; 
    q=&(L->stu[i-1]); 
    for(p=&L->stu[L->length-1];p>=q;--p) 
    *(p+1)=*p; *q=e; ++L->length; 
    return OK; 
    }/*ListInsert Before i */

    main() 
    { struct STU e; 
    L.length=0; 
    strcpy(e.name,"zmofun"); 
    strcpy(e.stuno,"100001"); 
    e.age=80; 
    e.score=1000; 
    listinsert(&L,1,e); 
    printlist(L); 
    printf("List length now is %d./n/n",L.length);

    strcpy(e.name,"bobjin"); 
    strcpy(e.stuno,"100002"); 
    e.age=80; 
    e.score=1000; 
    listinsert(&L,1,e); 
    printlist(L); 
    printf("List length now is %d./n/n",L.length); 
    }

    展开全文
  • 抽象数据类型案例

    千次阅读 2021-11-16 21:28:55
    数据结构 数据结构-第一章 数据结构-第一章-抽象数据类型案例数据结构...抽象数据类型定义举例: 抽象数据类型 (ADT)定义举例:Circle的定义 ADT 抽象数据类型名{ Data 数据对象的定义 数据元素之间的逻

    数据结构


    数据结构-第一章

    数据结构-第一章-抽象数据类型案例

    前言


    一、介绍

    • 抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。其定义取决于它的一组逻辑特性,而其在计算机内部如何表示和实现无关,意思就是不论其内部结构如何变化,只要其数学特性不变,都不影响其外部的使用。

    • 抽象数据类型定义举例:

    抽象数据类型 (ADT)定义举例:Circle的定义
    
    ADT 抽象数据类型名{
    	Data
    	  数据对象的定义
    	  数据元素之间的逻辑关系的定义
    	Operation
    	  操作1
    	     初始条件
    		 操作结果描述
    	  操作2
    		......
    	  操作n
    	    ......
    
    }ADT 抽象数据类型名
    

    在这里插入图片描述

    二、c++实现

    用代码实现为:

    #include<iostream>
    using namespace std;
    #define PI 3.14
    
    
    
    struct Circle
    {
    	double m_r;//半径
    	void set_r(double R)
    	{
    		m_r = R;
    	}
    	double get_r()
    	{
    		return m_r;
    	}
    
    };
    
    double Area(Circle &c)
    {
    	double acer = PI*c.get_r()*c.get_r();
    	return acer;
    }
    
    double Circleference(Circle &c)
    {
    	double C = 2 * PI*c.get_r();
    	return C;
    }
    int main()
    {
    	Circle c;
    	c.set_r(10);
    	double acer = Area(c);
    	cout << "面积为:" << acer << endl;
    	double C = Circleference(c);
    	cout << "周长为:" << C << endl;
    	system("pause");
    	return 0;
    }
    

    经初步测试,代码无误。

    • 这里我采用的是结构体去做的,实际上还能用类去做。

    总结

    期待大家和我交流,留言或者私信,一起学习,一起进步!

    展开全文
  • 什么是抽象数据类型

    千次阅读 2021-04-29 23:15:13
    什么是抽象数据类型?前言1.数据类型和数据构造2.抽象数据类型的概念3.抽象数据类型的描述 前言 抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想和方法,也是一种用于设计和实现程序...
  • 数据结构、数据类型、抽象数据类型之间的区别

    千次阅读 多人点赞 2019-11-03 20:15:37
    三者的定义(蓝字可忽略): 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。) 逻辑结构指反映数据...
  • 类型名称 :二叉树 数据对象集 :一个有穷的结点集合。若不为空,则由根节点和其左、右二叉子树组成。 操作集: Boolean isEmpty(BinTree BT);//判别BT是否为空 voidTraversal(BinTree BT);//遍历,按某个...
  •  数据对象:D={r,i | r,i为实数}  数据关系:S={<r,i>}  基本操作:  InitComplex(&C,re,im)  操作结果:构造一个复数C,实部为re,虚部为im。  DestoryComplex(&C)  初始条件:复数C...
  • 数据类型和抽象数据类型

    千次阅读 2020-02-22 16:31:35
    二、抽象数据类型(ADT) 1.定义:由用户定义的表示应用问题的数据模型,即数据结构以及定义在此结构上的一组运算。 2.特征: (1)数据抽象:用ADT描述程序程序处理的实体时,强调的是其本质特征、其所能完成的功能...
  • 第七话:抽象数据类型ADT

    千次阅读 2021-07-27 06:01:07
    抽象数据类型(Abstract Date Type, ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。为什么有了数据类型,还要有抽象数据...
  • 4.2.0 队列的定义抽象数据类型

    千次阅读 2018-03-17 13:06:56
    概念 队列 ( queue ) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。...抽象数据类型 ADT 队列 (Queue) Data 同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系 。 Operation ...
  • 人们在使用计算机解决客观世界中存在的具体问题时,通常过程如下:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上... 数据结构主要与在上述过程中从建立概念模型到实现模型转化并为后续程序设...
  • 抽象数据类型线性表的定义与实现

    千次阅读 2018-09-12 10:36:37
    最近刚刚上完数据结构的第一章,好久没有写线性表了,正好借着老师的作业温习一下,主程序实现的就是简单的list有序合并。不多比比,直接上代码 第一部分 de.hpp文件 // // main.cpp // test // // Created by ...
  • 抽象数据类型

    千次阅读 2016-09-28 16:42:34
    抽象数据类型 1.首先回顾一下程序设计语言中的数据类型 数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。 原子类型:如C/C++语言的整形、字符型等标准类型及指针等简单的导出类型和空类型...
  • 就数据结构中的struct来说,其是定义抽象数据结构类型的重要手段,但是在看书的... 首先紧跟struct之后的肯定是该抽象数据类型的名称,类比于"int',若无typedef,则在结尾处分号之前的activity就类比于a,b[100],属于
  • 参考Primer C++ 第七章第一节 类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和...1.定义抽象数据类型 1.1设计类 确定变量、成员函数、非成员函数 1.2定义类 Sales_data类如下所示: stru...
  • 数据类型: 是一个值的集合和定义在此集合上一组操作的总称。 数据类型有两种:简单型和结构类型。...抽象数据类型(Abstract Datat Type, ADT): 是一个数学模型和定义在此数学模型上一组操作。 ...
  • 如何理解数据结构中的抽象数据类型

    万次阅读 多人点赞 2018-09-04 18:49:23
    抽象数据类型的标准格式 ADT 抽象数据类型名 { Data: 数据元素之间逻辑关系的定义;...抽象数据类型定义仅仅取决于它的一组逻辑特性,而与它在计算机中的表示和实现无关。 例如,int类型的数据表示的...
  • 数据结构之抽象数据类型

    千次阅读 2019-05-12 22:28:09
    抽象数据类型(ADT)概念 以面向对象编程为例,在创建一个对象的时候,要给定这个对象有哪些属性以及行为,并且可以通过一套接口描述说明这个对象用来干什么的,在给定输入的时候,产生相应的结果,并不需要知道其...
  • C语言实现抽象数据类型(ADT)

    千次阅读 多人点赞 2020-12-22 20:49:02
    C语言实现抽象数据类型(ADT)什么是抽象数据类型(ADT)C语言通过怎样的方式来实现ADT举例前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:学习内容:学习时间:学习产出: 什么是抽象数据类型...
  • 抽象数据类型概念

    千次阅读 2018-12-06 19:10:33
    抽象数据类型其实本质上就是数据类型,涉及数据的存储以及如何用存储来反映数据元素之间的关系,它定义的为一个三元组(D,S,P),P是定义的一组针对存储的数据操作(如插入,删除,排序等). 抽象数据类型本质上和数据类型是...
  • 抽象数据类型 抽象数据类型=逻辑结构+抽象运算 抽象数据类型暂不考虑计算机的具体存储结构和运算的具体实现。 抽象数据类型实质上,就是在描述问题本身(与计算机无关)。 目标:在不涉及具体的,和计算机系统相关...
  • 抽象数据类型的实例

    千次阅读 2020-03-20 15:21:38
    重新学习数据结构,主要了解了一些关于数据结构的一些相关的概念; 数据结构是一种带结构的数据集合;它包括逻辑结构还有存储结构,然后学习了一下数据类型的表示以及实现...抽象数据类型定义仅仅取决于它的一组逻...
  • 抽象数据类型:复数COMPLEX

    千次阅读 2019-11-05 10:56:06
    抽象数据类型:复数COMPLEX:分别对实部和虚部在结构体进行定义。 ADT COMPLEX{ 数据对象:D={real,image|real∈实数,image∈实数} 数据关系:R={<real,image>} 基本操作: InitComplex(&C) 操作结果:...
  • 二叉树的抽象数据类型

    千次阅读 2017-11-07 11:16:39
    之前有写过关于树和二叉树的(K, R)逻辑关系,即每个节点(除根节点)有唯一前驱和多个后继。... 存储数据数据之间的关系 数据之间的关系用指针来记录 数据与关系封装在一个类中:BinaryTreeNode;
  • 5-抽象数据类型(ADT)

    千次阅读 多人点赞 2018-05-25 11:40:53
    1. 以数据为核心的思维   在现实中计算机能够解决非常多的问题,如图1所示,可以用计算机去实现一个GIS地理信息系统,也可以实现一个电子病历系统,或者实现一个计算机管理资源的图形化界面等。包括现在我们使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 539,446
精华内容 215,778
关键字:

串的抽象数据类型定义