精华内容
下载资源
问答
  • 抽象数据结构

    2020-01-23 09:49:40
    1.抽象数据类型定义 抽象数据类型( Abstract Data Type,ADT)是带有一组操作的一些对象的集合。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。 2.抽象数据类型表示...

    1.抽象数据类型定义

           抽象数据类型( Abstract Data Type,ADT)是带有一组操作的一些对象的集合。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。

    2.抽象数据类型表示方法

           抽象数据类型是一个数学模型以及定义在其上的一组操作组成,因此,抽象数据类型一般通过数据对象、数据关系以及基本操作来定义,即抽象数据类型三要素是(D,S,P)

           ADT抽象数据类型名{

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

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

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

           } ADT抽象数据类型名

    3.数据结构定义

      数据结构(Data Structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。

    4.数据结构和抽象数据类型之间的联系和区别

           数据结构定义为一个二元组(D,S),即两个集合,D是数据元素的集合,S是数据元素之间一个或多个关系的集合。

           抽象数据类型本质是“数据类型”,与计算机相关,涉及数据的存储及如何用存储来反应数据元素之间的关系。它定义为一个三元组(D,S,P),加上的P是定义的一组针对存储的数据操作(如插入,删除,排序等)。


      

    展开全文
  • C++抽象数据结构

    2018-11-13 16:01:05
    来源于cppcon里大牛关于cpp抽象数据结构的分享的ppt,较为完善.
  • 数据结构和算法使用Java:一些使用Java的抽象数据结构的代码
  • 基于C语言的二叉树抽象数据结构的实现,呕心沥血制作啊!有需要的同学可以下来参考参考!
  • 抽象数据结构—栈

    2013-01-21 09:05:11
    一、抽象数据结构说明: 1. 栈、队列和优先级队列是比数组和其他数据结构更为抽象的结构。它们主要是作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比那些数据库类型的结构要短得多。...

    引用:http://blog.csdn.net/solidwang/article/details/4487585

    一、抽象数据结构说明:

    1.         栈、队列和优先级队列是比数组和其他数据结构更为抽象的结构。它们主要是作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比那些数据库类型的结构要短得多。在程序执行期间它们才被创建,通常用他们去执行某项特殊的任务;当完成任务之后他们就被销毁。

    2.         此外,它们的访问时受限制的,即在特定的时刻只有一个数据项可以被读取或者被删除。访问其他数据项,理论上是不允许的。栈只允许访问一个数据项,即最后插入的数据项。移除这个数据项后,才能访问倒数第二个插入的数据项,依次类推。

    3.         栈的应用非常的广泛:检验源代码中括号的匹配问题、解析表达式、遍历树的节点和查找图的节点等等。

    4.         理论上说,ADT定义的栈是不会满的,但是数组实现的栈会满,我们这里用数组来模拟一下栈。

    二、Java语言模拟栈:

    package com.solid.stack;

    publicclass StackX {

        //数组

        privatelong[] stackArray;

        //栈顶

        inttop;

        //最大容量

        intmaxSize;

       

        /**

         *构造方法

         *@parammaxSize

         */

        public StackX(int maxSize) {

           this.maxSize = maxSize;

           stackArray = newlong[maxSize];

           top = -1;

        }

       

        /**

         *入栈操作

         *@paramvalue

         */

        publicvoid push(long value) {

           stackArray[++top] = value;

        }

       

        /**

         *出栈操作

         *@return

         */

        publiclong pop() {

           returnstackArray[top--];

        }

       

        /**

         *判断是否为空栈

         *@return

         */

        publicboolean isEmpty() {

           return (top == -1);

        }

       

        /**

         *读取栈顶元素

         *@return

         */

        publiclong peek() {

           returnstackArray[top];

        }

       

        /**

         *判断是否满

         *@return

         */

        publicboolean isFull() {

           return (top == maxSize-1);

        }

    }

    展开全文
  • 摘自:大话数据结构一、数据二、数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。分类:1、逻辑结构 1)集合结构:同属于一个集合,它们之间没有其他关系 2)线性结构:数据元素之间是一对一的关系...

    摘自:大话数据结构


    一、数据


    二、数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

    分类:

    1、逻辑结构

        1)集合结构:同属于一个集合,它们之间没有其他关系

        2)线性结构:数据元素之间是一对一的关系

        3)树形结构:一对多的层次关系

        4)图形结构:多对多的关系

    用示意图表示数据的逻辑结构时,要注意两点:

    1)将每个数据元素看做一个结点,用圆圈表示

    2)元素之间的逻辑关系用结点之间的连线表示,如果这关系是有方向的,则用带箭头的连线表示

    2、物理结构(存储结构):数据的逻辑结构在计算机中的存储形式

    注意:存储器主要针对内存而言,硬盘、软盘光盘等外部存储器的数据组织常用文件结构来描述。如何存储数据之间的逻辑关系,是实现物理结构的重点和难点

    1)顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系的一致的。排队占位。

    2)链式存储结构:数据元素存储在任意存储单元里,这组存储单元可连续或不连续。

    注意:数据元素的存储关系不能反应其逻辑关系,因此需要用一个指针存放数据元素的地址,这样可以通过地址就可以找到相关联数据元素的位置。


    总结:逻辑结构是面向问题的,物理结构是面向计算机的,其基本目标是将数据及其逻辑关旭存储到计算机的内存中。


    三、抽象数据类型

    1、数据类型:指将一组性质相同的值的集合及定义在此集合撒谎个的一些操作的总称。

    数据烈性是按照值的不同进行划分的。类型就用来说明变量或表法师的取值范围和所能进行的操作。

    2、抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。 体现了程序设计中问题分解、抽象和信息隐蔽的特性。

    描述抽象数据类型的标准格式:

    ADT  抽象数据类型名
    Data 
        数据元素之间逻辑关系的定义
    Operation
        操作1 
            初始条件
            操作结果描述
        操作2
        操作n
    endADT


    展开全文
  • 抽象数据类型可以通过固有的数据类型(如整型,实型,字符型等)来表示和实现。即利用处理器中已经存在的数据类型来说明新的数据结构,用已经实现的操作来组合新的操作。 例:计算两个复数的加减; #include<...

    抽象数据类型可以通过固有的数据类型(如整型,实型,字符型等)来表示和实现。即利用处理器中已经存在的数据类型来说明新的数据结构,用已经实现的操作来组合新的操作。
    例:计算两个复数的加减;

    #include<stdio.h> 
    typedef struct				//复数类型 
    {
    	float Realpart;			//实部 
    	float Imagepart; 		//虚部 
    }Complex;
    Complex Create(float x, float y)
    {	//构造一个复数
    	Complex C;
    	C.Realpart = x;
    	C.Imagepart = y;
    	return C;
    }
    Complex Add(Complex C1, Complex C2) 
    {	//求两个复数的和sum 
    	Complex sum;
    	sum.Imagepart  = C1.Imagepart + C2.Imagepart;
    	sum.Realpart = C1.Realpart + C2.Realpart;
    	return sum;
    }
    Complex Sub(Complex C1, Complex C2) 
    {	//求两个复数的差Sub 
    	Complex difference;
    	difference.Imagepart = C1.Imagepart - C2.Imagepart;
    	difference.Realpart = C1.Realpart - C2.Realpart;
    	return difference;
    }
    int main()
    {
    	Complex C1, C2, C;
    	float x1,y1,x2,y2;
    	char op;
    	printf("请输入两个复数\n");
    	scanf("%f%fi%c%f%fi", &x1, &y1, &op, &x2, &y2);
    	C1 = Create(x1, y1);
    	C2 = Create(x2, y2);
    	switch(op)
    	{
    		case'+': C = Add(C1, C2);break;
    		case'-': C = Sub(C1, C2);break;		
    	}
    	if(C.Imagepart < 0) printf("%.2f %.2fi", C.Realpart, C.Imagepart);//如果结果是实部-虚部,不对输出进行操作。
    	else printf("%.2f + %.2fi", C.Realpart, C.Imagepart);//如果结果是实部+虚部,需要在虚部前加+;
    }
    

    文章借鉴:《数据结构》(C语言版)(第二版)人民邮电出版社;青岛大学–王卓老师

    展开全文
  • 串的抽象数据结构

    2015-12-29 14:31:03
    串的抽象数据类型定义 栈的物理存储结构 串的抽象数据类型定义ADT String{ 数据对象:D={ai|ai∈CharacterSet,i=1,2,…,n,n≥0} 数据关系:R={栈的物理存储结构 定长顺序存储表示 堆分配存储方式 块链存储方式
  • 今天作者学习了顺序表的抽象数据结构,在考研资料上发现了好多关于顺序表的综合运用题,基本上都是历年的考研题,所以今天不妨来着重探讨一下。 顺序表的抽象数据结构 抽象数据结构包括了顺序表存储结构的定义,...
  • 一、抽象数据结构说明:1. 栈、队列和优先级队列是比数组和其他数据结构更为抽象的结构。它们主要是作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比那些数据库类型的结构要短得多。在...
  • 抽象数据结构(ADT)的介绍

    千次阅读 2018-11-30 09:42:19
    抽象数据类型(ADT(abstract data type))是一些操作的集合。抽象数据类型是数学的抽象;在ADT的定义中根本没有涉及如何实现操作的集合。 整数,实数及布尔量有与它们相关的操作,而抽象数据类型也有自己额相关...
  • 链表的抽象数据结构

    2017-08-09 23:15:42
    //free(TmpCell)的结果是:TmpCell正在指向的地址没变,但在该地址处的数据此时已无定义了。 //查找节点的前驱 Position FindPrevious() { Position P; P = L; //从表头节点开始(统一性) while (P -> ...
  • 基本数据类型是对于指令操作的数据单元来说的。其决定了操作,字节数。这个概念很对编译有用。比如short int x = 2; 则是把数“2”指令中使用2个字节,X也用2个字节的存储。然后 int y = x;汇编代码为:  Movl $2,%...
  • 队列和栈一样,也属于抽象数据类型,也主要是作为构思算法的辅助工具之一。不同的是队列的实现原理和栈不同,它采用的是FIFO(先进先出),而栈则是LIFO(后进先出)。 下面我们用数组来实现队列的描述,当然,...
  • 有了上面基础知识的准备那么就很好实现这个数据结构了,由于我想要的是一个可以复用、易于维护的位数组(bit array),所以我把它设计成抽象数据结构,把实现和接口分离开来,并且采用C语言提供的“不完整类型”把...
  • 显然,所定义的数据类型的抽象层次越高,含有该抽象数据类型的软件模块的复用程度也就越高。 其中这句话最不理解:显然,所定义的数据类型的抽象层次越高,含有该抽象数据类型的软件模块的复用程度也就越高...
  • 呵呵我弄了4个多小时才弄好,之前还看到清华大学的一本数据结构的书上(李春葆的数据结构教程上机实验指导)出现了这种结构,真的是无语,就是Linklist *&list,我在我的系统里面编译过了,通不过,当然了我用的是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,802
精华内容 9,120
关键字:

抽象数据结构

数据结构 订阅