关系有两种表示方法

来源:互联网 发布:剑灵最美捏脸数据图 编辑:程序博客网 时间:2024/05/17 06:22

 数据结构

  存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。

  在计算机中表示信息的最小单位是"位(bit)",任何一个数据元素都可以用一个 "位串" 表示,如,数值"321" 可用位串 101000001 表示,字母"A"可用位串 001000001 表示。当数据元素由多个数据项构成时,每个数据项即为表示数据元素的位串中的一个"子位串"。
 关系有两种表示方法:

  其一为"顺序映象"。以 "y 相对于 x 的存储位置" 表示 "y 是x的后继",例如,令 y 的存储位置和 x 的存储位置之间相差一个预设常量C,C本身是个隐含值,由此得到的数据存储结构为"顺序存储结构"。

  其二为"链式映象"。以和x绑定在一起的附加信息(指针)表示后继关系,这个指针即为 y 的存储地址,由此得到的数据存储结构为"链式存储结构"。

  可见,在顺序存储结构中只包含数据元素本身的信息,而链式存储结构中以"由数据元素 x 的存储映象和附加指针合成的结点"表示数据元素。

关系的最小单位是一个<x,y>的有序对,则讨论关系的表示方法只需讨论这个有序对的表示方法即可,即如何表示 "y是x的后继"。
顺序映象
  
 链式映象
 
存储结构的描述方法随编程环境的不同而不同,当用高级程序涉及的油印间相编程时,通常可用高级编程语言中提供的数据类型描述之。

  例如,当以"顺序存储结构"表示前述定义的长整数时,可将它定义为:
   typedef int Long_int[3];

  同样,此时对数据元素也要借用高级编程语言中的数据类型描述之。

  对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。

  不同的数据结构其操作集不同,但下列操作必不可缺:
  1) 结构的生成;
  2) 结构的销毁;
  3) 在结构中查找满足规定条件的数据元素;
  4) 在结构中插入新的数据元素;
  5) 删除结构中已经存在的数据元素;
  6) 遍历。

例如,定义"日期"为:
  typedef struct {
   int y;   // 年号 Year
   int m;   // 月号 Month
   int d;   // 日号 Day
  } DateType;  // 日期类型

 定义"学生"为:
  typedef struct {
   char id[8];   // 学号
   char name[16]; // 姓名
   char sex;    // 性别
   DateType bdate; // 出生日期
  } Student;    // 学生类型

原创粉丝点击