精华内容
下载资源
问答
  • 二叉树的抽象数据类型定义

    千次阅读 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 ):层次遍历,从上到下、从左到右
    展开全文
  • 一、线性表的定义 由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表。 线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时线性表称为空表。 二、非空线性表及线性结构的特点 1、存在唯一的一个被称为...

    一、线性表的定义

    由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表。
    线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时线性表称为空表。

    二、非空线性表及线性结构的特点

    1、存在唯一的一个被称为“第一个”的数据元素;
    2、存在唯一的一个被称为“最后一个”的数据元素;
    3、除第一个结点外,剩余的每个数据元素都只有一个前驱;
    4、除最后一个结点外,剩余的每个数据元素都只有一个后继;

    三、线性表的抽象数据类型定义

    ADT List{
    数据对象: D={ai I aiEElemSet, i=l, 2, …, n, n;;,Q}
    数据关系:R=(<a 七 1,ai>I a 仁 1,aiED, i=2, …, n}
    基本操作:
    Ini tList (&L)
    操作结果:构造一个空的线性表L。
    DestroyList(&L)
    初始条件:线性表L已存在。
    操作结果:销毁线性表L。
    ClearList (&L)
    初始条件:线性表L已存在。
    操作结果:将L重置为空表。
    ListEmpty(L)
    初始条件:线性表L已存在。
    操作结果:若L为空表,则返回true, 否则返回false。
    ListLength(L)
    初始条件:线性表L已存在。
    操作结果:返回L中数据元素个数。
    GetElem(L,i,&e)
    初始条件:线性表L巳存在,且1:,s;i:os;ListLength(L)。
    操作结果:用e返回L中第1个数据元素的值。
    LocateElem(L,e)
    初始条件:线性表L已存在。
    操作结果:返回L中第1个 值与e相同的元素在 L中的位置 。若这样的数据元素不存在 ,则返回值为0。
    PriorElem(r,cur_e,&pre_e)
    初始条件:线性表L已存在。
    操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回其前驱,否则操作失败,pre_e无定义。
    NextElem(L,cur_e,&next_e)
    初始条件:线性表L已存在。
    操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回其后继,否则操作失败,next_e无定义。
    Listinsert(&L,i,e)
    初始条件:线性表L已存在,且1:,s;i:os;ListLength (L) +l。
    操作结果:在 L中第1个位置之前插入新的数据元素 e, L的长度加1。
    ListDelete(&L,i)
    初始条件:线性表L已存在且非空,且l:os;i:os;ListLength(L)。
    操作结果:删除L的第1个数据元素,L的长度减1。
    TraverseList(L)
    初始条件:线性表L已存在。
    操作结果:对线性表L进行遍历,在遍历过程中对 L的每个结点访问一次。
    } ADT List

    展开全文
  • 二叉树的基本功能: 1、二叉树的建立 2、前序遍历二叉树 3、中序遍历二叉树 4、后序遍历二叉树 5、按层序遍历二叉树 6、求二叉树的深度 7、求指定结点到根的路径 8、二叉树的销毁 9、其他:自定义操作
  • 线性表的抽象数据类型定义

    千次阅读 2018-03-22 11:18:17
     //返回第i个数据元素的值(返回类型可能不同) public int indexOf(Object obj); //第一个与obj满足关系equals()数据元素的位序。若这样的数据元素不存在,则返回值为-1(obj的类型根据实际不同)  public ...

    public interface ListIntf{
           public int size();  //返回表长度                                                                                                                                                public void clear();  //重置为空表                                                                                                                                            public boolean isEmpty();  //若为空表,则返回ture,否则返回false                                                                                        public Object get(int i);  //返回第i个数据元素的值(返回类型可能不同)                                                                                public int indexOf(Object obj);  //第一个与obj满足关系equals()数据元素的位序。若这样的数据元素不存在,则返回值为-1(obj的类型根据实际不同)

            public Object getPre(Object obj); //若obj是表中元素,则返回他的前驱
            public Object getNext(Object obj);  //若obj是表中元素,则返回他的后继

            public void insertElementAt(Object obj,int i);  //在第i个位置之前插入新的数据元素obj,表长度加1
            public Object remove(int i);   //删除第i个数据元素,并返回其值,表长度减1

            public Object remove(Object obj);  //删除数据元素obj,并返回其值,表长度减1

    展开全文
  • 抽象数据类型定义(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); 
    }

    展开全文
  • 类型名称 :二叉树 数据对象集 :一个有穷的结点集合。若不为空,则由根节点和其左、右二叉子树组成。 操作集: Boolean isEmpty(BinTree BT);//判别BT是否为空 voidTraversal(BinTree BT);//遍历,按某个...
  • 编写完成集合抽象数据类型定义及其运算,要求具有并、交、差运算
  • 数组的定义抽象数据类型

    千次阅读 2020-02-25 18:33:12
    类似于线性表,抽象数据类型数组的定义(C语言风格)为: 注: &为引用 ,&A为引用A。 OK的状态码为1 数据对象: aabcde…… a是数组a的一维下标,若a=5,那么数组a的第一维的长度为5 b是数组a的二...
  • 改正:void Create( Complex &C, float x, float y),以“&”打头的参数即为引用参数,使用方式为 :变量类型 &具体变量 c++中[Error] cin was not declared in this scope问题解决 原因:缺少 #include using ...
  • 什么是抽象数据类型

    千次阅读 2021-04-29 23:15:13
    什么是抽象数据类型?前言1.数据类型和数据构造2.抽象数据类型的概念3.抽象数据类型的描述 前言 抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想和方法,也是一种用于设计和实现程序...
  • 线性表的讲解,分析。 线性表的抽象数据类型定义 线性表的存储结构 线性表的应用
  • 抽象数据类型(三元组ADT、复数四则运算) 数据结构 湖南大学
  • 数据类型: 是一个值的集合和定义在此集合上一组操作的总称。 数据类型有两种:简单型和结构类型。...抽象数据类型(Abstract Datat Type, ADT): 是一个数学模型和定义在此数学模型上一组操作。 ...
  • 抽象数据类型线性表的定义与实现

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

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

    千次阅读 2018-03-17 13:06:56
    概念 队列 ( queue ) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。...抽象数据类型 ADT 队列 (Queue) Data 同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系 。 Operation ...
  • 如何理解数据结构中的抽象数据类型

    万次阅读 多人点赞 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是定义的一组针对存储的数据操作(如插入,删除,排序等). 抽象数据类型本质上和数据类型是...
  • 参考Primer C++ 第七章第一节 类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和...1.定义抽象数据类型 1.1设计类 确定变量、成员函数、非成员函数 1.2定义类 Sales_data类如下所示: stru...
  • 数据结构之抽象数据类型-复数四则运算 数据结构之抽象数据类型-复数四则运算2007-04-28 16:06[ 复数 ADT 的描述 ]  ADT complex{  数据对象: D={ c1,c2 c1,c2 ∈ FloatSet }  数据关系: R={ ,c2> c1 c2 }  ...
  • 数据类型和抽象数据类型

    千次阅读 2017-05-31 20:00:24
    数据类型和抽象数据类型  在用高级程序设计语言编写的程序中,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。例如,C语言中的基本数据类型有:整型、字符型、实型(包括单精度型和双...
  • 抽象数据类型:复数COMPLEX

    千次阅读 2019-11-05 10:56:06
    抽象数据类型:复数COMPLEX:分别对实部和虚部在结构体进行定义。 ADT COMPLEX{ 数据对象:D={real,image|real∈实数,image∈实数} 数据关系:R={<real,image>} 基本操作: InitComplex(&C) 操作结果:...
  • 人们在使用计算机解决客观世界中存在的具体问题时,通常过程如下:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上... 数据结构主要与在上述过程中从建立概念模型到实现模型转化并为后续程序设...
  • 1、串是由一个或多个字符组成的有序数列,又叫字符串。 2、空格串是只包含空格的串,有长度有内容,而且可以不止一个空格。 3、子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应的包含子串的...
  • 它包括逻辑结构还有存储结构,然后学习了一下数据类型的表示以及实现,虽然在C语言基础中可以常常看到结构体,但是到今天才明白什么是用户建立自己的数据类型这句话,以下就是构建复数这样一个结构体的数据类型;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 511,415
精华内容 204,566
关键字:

抽象数据类型的定义