分享到:

一种针对大型数据结构的自动内存管理算法

0引言时下软件业界流行的Java、C#等语言都有一个共同的特点:支持自动资源回收。即在程序的运行过程中,当内存资源不足时,由系统而不是程序员编写的代码回收各种对象或数据结构占用的内存资源。资源回收技术有着在程序设计领域越来越普及的趋势。而许多传统的语言,例如C++语言,由于其产生时间的相对较早,并没有把资源回收作为标准库包含其中,这使得习惯用Java编程的程序员发现使用C++等非自动资源回收语言时很容易出错,因为必须人工管理内存,这无疑增加了该类软件开发的复杂度。本文以C++语言为例,提出了一种如何在不支持自动资源回收的面向对象程序的运行过程中,实现对程序中大型数据结构的高效自动的内存管理算法。该算法具有减少堆内存申请次数,增强数据局部性,消除内存碎片等优点,使程序性能得到总体提升;同时还自动完成绝大部分的内存管理工作,使程序的开发效率也得到了提高。1程序中的对象分类1.1根集根集定义为在程序运行时,存储于全局变量、当前活动栈中...  (本文共4页) 阅读全文>>

《池州师专学报》2005年05期
池州师专学报

用C语言实现图的数据结构

与线性表和树相比,图(graph)是一种更为复杂的数据结构。在图形结构中,结点之间的关系是任意的,图中任意两个数据之间都可能相关。图反映了现实生活中多对多的关系,将实际问题抽象化后用图来描述,使问题比较直观且容易理解,因此,图的应用极为广泛,特别是近年来得到迅速发展,在人工智能、物理、化学、工程、计算机科学等许多领域发挥着极其重要的作用。C语言是世界上应用最为广泛的几种计算机语言之一,它功能强、语句表达简练、控制和数据结构丰富灵活、程序时空开销小、可移植性好,硬件控制能力强,常用来开发系统软件和应用软件,实用价值强,因此,本文采用C语言来实现图的数据结构,从而使读者在深刻理解图的数据结构的同时,也可以对C语言的思想加深理解。为了有针对性的说明图这一数据结构,本文结合具体示例(见右图A图)进行程序设计分析,给出图的定义,实现图的存储和图的深度遍历。1.总体设计1.1组成:本文主要分成三大部分,具体描述的内容分别是:图的定义、图的存...  (本文共2页) 阅读全文>>

《信息技术与信息化》2005年01期
信息技术与信息化

如何展开存储在数据库中的树形数据结构

1 问题简述树形数据结构是一种重要的非线形数据结构 ,它类似于自然界中的一棵树 ,有着广泛的应用 ,如家族关系、行政关系、汽车的组成等等。在关系数据库中 ,树形数据结构是用父子关系来表示的 ,即用两个字段分别表示上、下级结点 ,相关记录之间由此形成联系。我们以图 1所示的数据结构为例进行介绍。图 1 树形数据结构示例表 1 示例的数据库结构上级结点下级结点TOPATOPBAA1AA2AA3BB1BB2A1A11B2B2 1B2B2 2可见 ,表 1的数据结构并未清楚地显示出数据中隐含的关系。我们如何将其更直观地显示出来呢 ?可以采用如下缩进的形式。层次子结点.1A..2A1...3A11..2A2..2A3.1B..2B1..2B2..3B2 1..3B2 2图 2 示例的缩进显示在图 2中 ,层次表示结点所处树中的位置 ,即结点的深度 ,顶点TOP为 0层 ,A、B为 1层 ,用点表示缩进形式的占位符号 ,第一层为一个点 ,第...  (本文共3页) 阅读全文>>

《数字技术与应用》2017年10期
数字技术与应用

数据结构简析

1数据结构的定义1.1数据元素数据元素是组成数据的基本单位,可以由多个用于表示其属性的数据项组成,数据项是处理数据时的最小单位。在化学中,原子是由质子和中子构成的,然而尽管质子和中子在尺度上更小,但原子才是研究问题时的的最小单位,因为原子是保持物质化学性质的最小的单位,就算分子也是由原子构成的。同样的道理,数据元素就好比原子,数据项就好比质子和中子,数据项必须由多个组合在一起才是一个完整的、有意义的数据元素,所以我们在处理数据时,通常不会从数据项处理起,而是对数据元素这一整体进行分析。1.2数据结构1.2.1逻辑数据结构当多个数据元素相互之间存在某种特定联系,把这些数据元素抽象成一个集合,便形成了一种逻辑数据结构。形象的来说,数据元素就像是一个个结点,一块块砖头,一条条钢筋。当多个数据元素以特定的关系组合后,就形成了一种特殊的建筑,这种建筑就是逻辑数据结构。当我们发现某种数据结构在解决某一类问题时具有很高的效率时,我们就把这种逻...  (本文共3页) 阅读全文>>

《电脑知识与技术》2018年16期
电脑知识与技术

浅谈如何学好数据结构

1前提引入“数据结构”按照课本上知识点的排列(以严蔚敏编著的教材为例),前四章主要研究线性结构,第五章主要讲解数组和广义表,可以看作是线性结构和非线性结构的一个转折章节也可以作为线性结构的拓展章节,第六章主要讲解树形结构,第七章主要讲解图形结构。第九章和第十章主要讲解数据的处理——查找和排序;本篇文章主要针对学习前七章的知识而提出一些见解。如何学好数据结构,主要从下面几个方面着手。2主要内容首要原则是掌握每一章节的基本概念并要理解运用。基本概念中往往隐含着解决相关问题的基本方法。比如线性表的定义:“一个线性表是n个数据元素的有限序列”,其中n=0;首先n=0时,线性表称为空表;n0时,为非空表;基本操作时空表不能进行取元素和删除元素操作,其次数据元素可以简单到是一个字符如线性表L=(a,b,c,d,e,f),也可以是一条记录,这时数据元素的定义一般是抽象的结构体类型定义;最后线性表中元素是“有序”的,这里的有序并不是指递增或者递...  (本文共2页) 阅读全文>>

《当代教研论丛》2017年02期
当代教研论丛

浅析高职数据结构课程教学自考

《数据结构》课程是可以实现计算机操作系统、编译程序、数据库系统、大型应用程序与其他系统程序的重要基础。它既是一般化的程序设计,同时又是非数值性程序设计的根本科学技术依据,是融数学、硬件以及软件三者于一体的核心课程。因此,《数据结构》课程具有很强的综合性,学习方式的选择对于顺利通过自考、学好计算机应用专业的其他后续课程起着关键性的作用。一、打好课程知识基础,掌握C语言与类C语言《数据结构》课程的内容、概念、方法都很多,并且具有高度的抽象性、极强的逻辑性、高超的技巧性、具体的实践性等特点。由于“程序设计基础与C语言”是《数据结构》课程的前导课程中的重要内容之一,学生对于C语言的程序设计的认识、理解、掌握程度直接影响着《数据结构》课程的理论知识学习与上机实验的效果,因此,教师应随时了解学生的“程序设计基础与C语言”的学习进度与掌握程度,并及时给予正确指导,解决学生在学习过程中遇到的问题,逐步夯实这门编程语言的知识技能基础,才能保证学生...  (本文共1页) 阅读全文>>