ElemType应该怎么设置
时间: 2023-10-25 18:55:03 浏览: 58
ElemType是一个通用的类型参数,可以根据你的具体需求来设置。在C语言中,ElemType可以表示任何你想要在数据结构中存储的数据类型。
你可以根据你的程序需要选择合适的数据类型来定义ElemType。例如,如果你想要在数据结构中存储整数,你可以将ElemType定义为int类型:
```c
typedef int ElemType;
```
如果你希望存储浮点数,你可以将ElemType定义为float类型:
```c
typedef float ElemType;
```
或者,如果你需要存储自定义的结构体或对象,你可以将ElemType定义为相应的类型。
请根据你的程序需求来选择适合的数据类型并将其设置为ElemType。
相关问题
L.elem=new ElemType[MAXSIZE]
### 回答1:
这是一个数组的动态分配方式,其中L就是数组的名字。元素类型为ElemType,最大长度为MAXSIZE。这行代码实际上在创建一个名为L的数组,并将其元素类型设置为ElemType,数组的最大长度为MAXSIZE。
### 回答2:
这是一句C语言的赋值语句,其中L代表线性表的结构体变量,.elem表示结构体中的一个成员变量,用于存储线性表的元素;new是C++中的关键字,用于动态分配内存空间;ElemType是自定义的数据类型,表示线性表元素的类型;MAXSIZE是预设的线性表的最大容量。
该赋值语句的作用是为线性表L分配了一个大小为MAXSIZE的内存空间,并将这段内存空间的首地址赋给了结构体L中的.elem成员变量。由于内存空间是动态分配的,所以需要使用new关键字来进行内存分配,在使用完后还需要使用delete关键字进行释放。
这句赋值语句的执行后,线性表L就具备了一个大小为MAXSIZE的存储空间,可以存储ElemType类型的元素。可以通过L.elem[i]的方式访问线性表L中的第i个元素。
需要注意的是,该语句只是为线性表分配了内存空间,并没有对具体元素进行初始化。在使用线性表之前,需要使用其他操作对线性表进行初始化,例如将长度设置为0。
总结起来,这句赋值语句为线性表L动态分配了一个大小为MAXSIZE的存储空间,使其具备了存储元素的能力,但需要在使用之前进行初始化操作。
//建立二叉树的存储结构 (外壳) template<class ElemType> void CreateTree(BinaryTree<ElemType> &T, ElemType &str, ElemType &empty){ ElemType tmp; vector<ElemType> t; stringstream input_T(str); while(input_T >> tmp){ t.push_back(tmp); } BinaryTreeNode<ElemType> *root; int num = 0; root = T.CreateBinaryTree(t, empty, num); T.SetRoot(root); }解读一下这个程序
这段程序是一个建立二叉树的存储结构的外壳,使用了模板类的方式来支持不同类型的元素。具体解释如下:
- `template<class ElemType>`:定义了一个模板类,其中 `ElemType` 表示元素的类型。
- `void CreateTree(BinaryTree<ElemType> &T, ElemType &str, ElemType &empty)`:定义了一个名为 `CreateTree` 的函数,它需要三个参数。第一个参数是一个二叉树对象 `T` 的引用,表示要构建的二叉树;第二个参数是一个字符串 `str` 的引用,表示二叉树的元素序列;第三个参数是一个空元素 `empty` 的引用,表示二叉树中的空节点。
- `ElemType tmp;`:定义了一个临时变量 `tmp`,用于将输入的字符串逐个读入到其中。
- `vector<ElemType> t;`:定义了一个向量 `t`,用于存储输入的元素序列。
- `stringstream input_T(str);`:定义了一个字符串输入流 `input_T`,用于将输入的字符串 `str` 转化为输入流,方便逐个读取其中的元素。
- `while(input_T >> tmp){t.push_back(tmp);}`:使用 `while` 循环逐个读取输入流中的元素,并将其存储到向量 `t` 中。
- `BinaryTreeNode<ElemType> *root;`:定义了一个指向二叉树节点的指针 `root`,用于存储二叉树的根节点。
- `int num = 0;`:定义了一个整型变量 `num`,用于记录当前正在处理的元素在向量 `t` 中的索引。
- `root = T.CreateBinaryTree(t, empty, num);`:调用二叉树对象 `T` 的 `CreateBinaryTree` 方法创建二叉树,并将返回的根节点指针存储到 `root` 变量中。
- `T.SetRoot(root);`:将二叉树的根节点设置为 `root`。