在C语言数据结构中,关于数据元素的类型定义均用“ ElemType e;”来表示,其中e是表示数据元素的变量,而ElemType则是它的类型,ElemType的含义就是“数据元素的类型”,是一个抽象的概念,是表示我们所要使用的数据元素应有的类型。
ElemType是数据结构上为了说明问题而用的一个词。它是element type(“元素的类型”)的简化体。
因为数据结构是讨论抽象的数据结构和算法,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义类型,为了不重复说明,使用过程用 “elemtype” 代表所有可能的数据类型,简单明了的概括整体。
在算法中,除特别说明外,规定ElemType的默认是int型。
拓展资料:Elem Type的使用方法:
在定义结构体array的时候有这样一段:
typedef struct
{
ElemType data[maxsize]
int length
}array
使用:typedef int ElemType//定义ElemType为int类型
你想让它是什么类型自己用typedef重定义就行。
也可以用模板表示,类似template<class T>里面的T。
你是说的数据结构吧,elemtype只是一个别名,你要把自己要用的类型定义为elemtype才行。比如我的数据本身的类型是整型的,就这样写
typedef int elemtype//下面就可以统一写
elemtype a,b
//相当于int a,b
//这样的好处是可以适用于任何类型,只要在用的时候,再定义一次就行了
我理解你说的意思是不是想让elemtype可以替换任意一种类型?如果是的话,这种东西叫做模板,它是C++的内容,不在C语言的范畴内。
具体用法是:
template <typename elemtype>
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist
之后声明变量时要赋予elemtype一个已知的类型,比如int。
struct sqlist<int>a
对于a这里面的elemtype就变成了int。
不过这是C++的内容,C里面不能用。
如果不用模板,而必须在C语言里用的话,有两种方法。
1. 之前声明它
typedef int elemtype
2. 之前预编译它
#define elemtype int