链表中数据类型的使用

时间:2016-12-21 13:02:54

标签: arrays multidimensional-array linked-list

创建链表时,应该事先定义数据类型。这是用于创建新链接列表的伪代码:

Type ListNode
    Declare Pointer as integer
    Declare data as string
EndType

Declare Namelist[1-50] of Listnode
For Index=1 to 49
    Namelist[Index].pointer=Index + 1
Endfor
Namelist[50].pointer=0

令我困惑的是newly defined data types和多维数组之间的相似性,其中可以存储多个数据元素。

newly defined data types如何允许在单个数组元素中存储多个不同的数据元素?

1 个答案:

答案 0 :(得分:0)

在回答你的问题之前,我想要定义一些东西。我在这里考虑使用C编程语言。

数组:数组是一个容器对象,它包含固定数量的单个类型的值。

基本数据类型:基本类型是由编程语言作为基本构建块提供的数据类型。

结构:C编程语言中的结构(以及许多衍生产品)是一个复杂的数据类型声明,它定义了一个物理分组的变量列表,这些变量列在一个内存块中的一个名称下,允许通过单个指针访问不同的变量,或者结构声明的名称返回相同的地址。

  

新定义的数据类型如何允许在单个数组元素中存储多个不同的数据元素?

如上所述,数组包含单一类型的对象。如果已定义结构(在C中)或类(在Java中),则可以将由您定义的类型的对象存储在数组中,并且每个数组元素都将是复合元素。

示例

typedef struct student {
     int id;
     char name[30];
} Student;

这定义了一个名为struct student的类型,我们使用Student为该类型设置了名称(typedef)。 请注意typedef只是一种为具有特定名称的类型添加别名的方法。

现在,我们可以声明Student类型的变量或变量数组:

Student record;
Student records[10];

我们也可以通过以下方式声明上述内容。

struct student record;
struct student records[10];

此处,record是单个变量,records是一个包含10个struct student类型变量的数组。

现在,数组records的每个元素都有两个数据元素id(类型为int)和name(类型为char数组)。这是您可以在数组的单个元素中存储不同数据元素的方法。

请注意,如果声明一个原始数据类型数组,例如integerdouble,则只能存储该特定类型的元素,而不能存储具有不同数据类型的元素。阵列。

多维数组

int var[2][3];

这里,var是一个多维(2d)数组,可以容纳6(2 x 3)个整数值。 请注意,即使var是二维数组,它也只能包含int类型的元素,而不包含其他元素。

您对多维数组的理解不正确。如您所述,在多维数组中,可以存储多个数据元素。 这是正确的,但所有数据元素都是相同的类型。因此,多维数组和我们定义的数据类型之间没有相似之处(比如C中的struct)。