数据结构,是一门研究非数值计算的程序设计问题中的计算机的操作对象以及它们之间的关系和操作等的一门学科。
数据:能输入到计算机并被计算机处理的符号的总称
数据元素::数据的基本单位,由若干数据项组成。数据项是不可分割的最小的数据单位
数据对象:数据的子集,性质相同的数据元素的集合
根据数据元素的关系的不同:
1、集合
2、线性结构
3、树形结构
4、图形或网状结构
下面一个例子,是一个简单的哈夫曼树:
首先定义一个结点类:
public class Node {
public int data;
public Node left;
public Node right;
}
当创建一个Node对象时,它可存储一个数值,还可连接两个Node类型的成员变量。
首先创建n个Node对象并对它们分别赋值,将他们存储到一个数组里。用一个排序方法把它们按所存储的值从小到大存储在这个数组里。每次取出最小的两个数n1,n2,将它们的值相加,用这个值来做新创建的node的data值,把data值小n1赋值给node的左值left,n2就赋给右值right。把n1、n2从数组中删除,将node放到数组中,重新排序,重复上述做法,知道数组中只剩一个Node对象为止。
此时的n个Node对象就构成了一个哈夫曼树结构。代码如下:
public Node creatTree(int[] a){
Node[] nodes=new Node[a.length];
for(int i=0;i<a.length;i++){
Node node=new Node();
node.data=a[i];
nodes[i]=node;
}
while(nodes.length>1){
sort(nodes);
Node node=new Node();
node.data=nodes[0].data+nodes[1].data;
node.left=nodes[0];
node.right=nodes[1];
Node[] nodes1=new Node[nodes.length-1];
for(int i=0;i<nodes1.length-1;i++){
nodes1[i]=nodes[i+2];
}
nodes1[nodes1.length-1]=node;
nodes=nodes1;
}
return nodes[0];
}
分享到:
相关推荐
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...
数据结构是计算机科学中的核心课程之一,主要研究如何在计算机中高效地组织和存储数据,以便于进行各种操作。上海交通大学的数据结构课件是学习这一主题的重要资源,它涵盖了广泛的知识点,帮助学生深入理解数据结构...
### 数据结构基础知识点详解 #### 一、基础知识概念解析 **1. 算法的复杂性** - **题目**: 算法的计算量的大小称为计算的()。 - **答案**: B. 复杂性 - **解析**: 算法的复杂性通常用来衡量算法执行效率的...
西安理工大学863数据结构真题集锦 作为一名 IT 行业大师,我将根据提供的文件信息,生成相关的知识点,以下是详细的输出结果: 一、数据结构概述 数据结构是计算机科学中的一门基础学科,旨在研究如何存储和组织...
数据结构是计算机科学中的核心课程,它探讨了如何在计算机中高效地组织和管理数据,以便于快速查找、存储和处理。这份“数据结构的pdf课件”是学习这一主题的重要资源,尤其对于初学者来说,它能提供系统性的指导和...
"数据结构(第4版)习题及实验参考答案-数据结构复习资料完整版(c语言版)" 本文档是关于数据结构的习题及实验参考答案,涵盖了数据结构的基础知识、逻辑结构、物理结构、算法、时间复杂度等方面。 数据结构基础 ...
数据结构是计算机科学中的核心概念,它涉及到如何在计算机中有效地组织、存储和处理大量数据。数据结构的设计和选择直接影响到算法的效率以及程序的性能。在这个领域,我们研究各种不同的数据组织方式,如数组、链表...
苏州大学《数据结构》20卷试真题库是一本涵盖数据结构基础知识、经典算法、应用实践等方面的试题集合,适用于计算机科学、计算机工程、软件工程等专业的学生以及从事计算机算法开发的程序员。本书以数据结构和算法为...
"Java常见数据结构面试题(带答案)" 以下是对Java常见数据结构面试题的知识点总结: 栈和队列 * 栈和队列的共同特点是只允许在端点处插入和删除元素。 * 栈通常采用的两种存储结构是线性存储结构和链表存储结构...
清华大学严蔚敏教授所编著的《数据结构》是一本经典的教材,不仅覆盖了数据结构的基础理论,还结合了C语言的实践应用,成为学习数据结构的重要资源。 首先,数据结构的概念包括数据元素、数据项和数据对象等基本...
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...
数据结构是计算机科学中的核心课程,它探讨了如何在计算机中高效地组织和管理数据,以便于进行快速的存取和处理。李春葆教授的数据结构教程是一本广泛使用的教材,它深入浅出地介绍了这一领域的基本概念和算法。在这...
数据结构是计算机科学中的核心课程之一,主要研究如何在计算机中高效地组织和存储数据,以便于进行各种操作。唐发根教授的数据结构教程是一部深受初学者欢迎的教材,它全面且深入地介绍了数据结构的基本概念、算法和...
《C++数据结构与程序设计》作为一部计算机科学与工程领域的基础性核心课程著作,专注于C++语言环境下数据结构与算法的教学与应用。这本书在内容实用性、编写体例和结构布局方面都显示出其独到之处,不仅适合高校师生...
数据结构是计算机科学中的核心课程,它探讨了如何在计算机中有效地存储和处理数据,以优化算法的性能。南开大学的数据结构课件是针对这门课程的学习资源,旨在帮助学生深入理解数据结构的基本概念、设计原理以及其...
"数据结构和算法分析 C++版 第三版" 本资源是《数据结构和算法分析 C++版 第三版》的摘要信息,作者是Clifford A. Shaffer,来自 Virginia Tech 的计算机科学系。该书将数据结构和算法分析的基本概念和技术进行了...
数据结构课程设计航空客运订票系统源代码+报告文档和可执行文件数据结构课程设计航空客运订票系统源代码+报告文档和可执行文件数据结构课程设计航空客运订票系统源代码。数据结构课程设计航空客运订票系统源代码+...
【北京邮电大学809数据结构复习指南】是一份由成功上岸北邮AI院的学长编写的详尽复习资料,旨在帮助备考北邮研究生考试的学生,特别是那些选择809数据结构作为专业课的考生。复习指南依据北邮研究生招生网的考试大纲...
数据结构是计算机科学中的核心课程之一,主要研究如何在计算机中高效地组织和管理数据,以便进行快速查找、插入和删除等操作。本资源集合包含了北京邮电大学历年来的数据结构期末试题,对于正在学习或准备相关考试的...