数据结构设计(数据结构设计心得体会)
数据结构课程设计是什么
一个软件系统框架应建立在数据之上,而不是建立在作之上。一个含抽象数据类型的软件模块应包含定义、表示、实现三个部分。
数据结构设计(数据结构设计心得体会)
数据结构设计(数据结构设计心得体会)
数据结构设计(数据结构设计心得体会)
对每一个数据结构而言,必定存在与它密切相关的一组作。若作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。
不同的数据结构其作集不同,但下列作必不可缺:
1. 结构的生成;
2. 结构的销毁;
3. 在结构中查找满足规定条件的数据元素;
4. 在结构中插入新的数据元素;
5. 删除结构中已经存在的数据元素;
6. 遍历。
抽象数据类型:一个数学模型以及定义在该模型上的一组作。抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本作集。ADT的定义为:
ADT 抽象数据类型名{
数据对象:(数据元素)
数据关系:(数据关系二元组结合)
基本作:(作函数的罗列)
} ADT 抽象数据类型名;
抽象数据类型有两个重要特性:
数据抽象
o 用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。
数据封装
o 将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。
数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性结构的顺序存储结构是一种随机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。
算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的作算法,如检索、插入、删除、更新的排序等。
数据结构的形式定义为:数据结构是一个二元组:
Data-Structure=(D,S)
其中:D是数据元素的有限集,S是D上关系的有限集。
数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。
数据结构算法设计——统计二叉树叶子结点的个数,并输出结果
同学,你们老师和我们老师留的作业是一模一样的阿,我有现成的做好了的程序,调试成功。这个程序的难点就在于这种很别扭的输入形式,所以我为它设计了一个结构体形式存放输入内容,再将它转化成了线性结构。
#include
#include
struct rm /建立输入信息结构体rm/
{ char data;
int l;
int r;
int signl; /作为标记的signl,signr/
int signr;
};
struct leafnode /建立叶子结构体/
{
char leaf;
leafnode lchild;
leafnode rchild;
};
void print(rm ps, int n);
void judge ( rm ps );
leafnode creatree(); /声明二叉树的建立函数/
void preorder (leafnode T); /声明先序遍历函数/
void inorder (leafnode T); /声明中序遍历函数/
void torder (leafnode T); /声明后序遍历函数/
char a[100];
int k=1;
int s=0;
rm p;
void main()
{
/-------------------------------按格式输入信息-----------------------------------/
int n;
cout<<"请输入二叉树内容:行为总数n ,后面的n行是的具体形式:"< cout<<"n= "; cin>>n; 数据结构设计(数据结构设计心得体会) p=(rm )malloc( nsizeof(rm) ); /开辟的一个叶子结构体型的指针数组/ rm p1; p1=p;
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。