在数据结构中,对数据必须要用相同的数据结构进行存储吗

问题描述:

在数据结构中,对数据必须要用相同的数据结构进行存储吗
比如说 对一个结点的数据结构 在同一个数据结构图中 是否要让它们包括相同的域呢 因为在这些域中有的能用到 有的用不到
1个回答 分类:综合 2014-11-25

问题解答:

我来补答
我们从c数据结构来说,可以不用相同结构,至于书上都一样,那是一般情况下,既然想把这些数据放在一起,就说明了这些数据有某些相同或相似的特征,使用相同域也在情理之中.不过在特别情况下,也可以把不同的结构放在一起,比如在一个学校的管理系统中,学生有一两万,老师有一两千,老师和学生用不同的结构,可由于老师人数太少,想和学生一起管理,就可以和学生放在一起.对于内存存储来说,有两种方式,第一种是使用联合union,使得学生老师使用同一联合就可以使用不同的域,这种方法的操作和普通结构体的操作一样,只不过要多一个域来指示每个联合存的是老师还是学生.第二种是直接使用两个结构,不使用联合,这时对于顺序存储来说,就有点困难了,因为结构可以大小不一,这时可以在两个结构的第一个域设置为标志域,标志两个结构,存储时通过标志域获取当前位置的结构,在按该结构的大小存取,顺序存储还可以在顺序表只存储结构的指针,那这时顺序表就是普通顺序表了,表元素可以使用*void类型,就可以存储任何地址了.对于链式存储,可以在两个结构体放个next域,next为*void类型,就可以把两个不同的结构连起来了,读时可通过结构的第一个元素〔标志位,大小相同〕来确定结构类型.当然,也可以把链表的数据域改为*void,存放结构指针.对于外存存储,既存文件里,那就只能按照在内存把结构体顺序存那样,按大小把结构体存文件里,读时按结构体的第一个元素的值来判断当前的结构,再按当前结构的大小来读出来.
 
 
展开全文阅读
剩余:2000
上一页:弧度制96页