回 帖 发 新 帖 刷新版面

主题:严版教程有一个关于抽象数据类型实现的疑问

在p12页,用类C去描述抽象数据类型Triplet
第一句
typedef ElemType *Triplet;
根据前面讲的知道,将数据元素类型约定为ElemType,而Triplet据我理解是一种结构类型,也就是一个数据结构加一组操作。
但是,在C语言里,typedef ElemType *Triplet;表示定义了一个Triplet类型,这个类型是指向ElemType类型元素的指针。似乎与这里Triplet不相干阿。
请问这句话是说的什么意思?是类C的发明还是可以C去解释?
[em10]
谢谢!

回复列表 (共4个回复)

沙发

首先,在C里,这个ElemType肯定也是个typedef或者define

typedef ElemType *Triplet;

就代表定义一个ElemType型的指针类型,别名为Triplet。

板凳

typedef ElemType* Triplet;

如果这样看呢?

3 楼

什么意思啊?关键是这个Triplet是一个数据结构,怎么会被定义成是一个数据元素的指针呢?

4 楼

阿,我觉得自己有点眉目了,这个Triplet作为一个三元组,是一种表数据结构,而表数据结构在C中最典型的就是数组,而数组是可以用指针来描述,定义一个首地址,这种用法比传统的数组更灵活。typedef ElemType *Triplet其实是说明Triplet是一个表数据结构,这个表的数据元素是ElemType类型的。
不知道是不是这样阿。。。。。。。。。。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册