首先是一个链表库构建?
那么,没有。链表是一个数据结构。标准库在std::list
和std::forward_list
中有两个不同的实现。
程序员需要创建一个节点类
从上面的例子中,似乎你的教授要你。
我不也知道什么是 “类型定义” 的意思。
typedef
是关键字。其目的是为现有类型指定替代名称。因此,例如打电话double
使用其他名称(比方说x
),你会喜欢的东西去以下:
typedef double x
现在你就可以宣布:
x name = 13.2
将被翻译成:
double name = 13.2
我知道指针是什么。
指针是一种数据类型,其值可以是特定存储空间的地址。在C++中获取特定分配变量的地址,您可以使用&x
,其中x
是分配的变量。打印&a
将以0x...
的形式打印存储器地址。如果声明类型为T*
的变量,则可以使该变量包含一个相同类型变量的内存地址T
。指针前面的*
符号意味着指示指针,这意味着获取它指向的内存空间值。
int x = 10
int* y = &x
std::cout << (*y);
在上例中输出为10
。
我将不胜感激,如果有人可以什么在解释一点点。
链表,在其最简单的形式,可以等实现以下内容:
struct node {
node(x, y = 0) : field(x), next(y) {}
int field;
node* next;
};
链表供应具有动态容器与尽可能多的细胞,因为它的目的确切需要。其背后的想法是,主node
结构应该包含一个成员变量field
,它将存储一个特定的值和一个指向下一个node
,将包含另一个值等的指针。
图形表示可以是以下:
[ a:10 ] ---> [ b:3 ] ---> [ c:7 ]
在上述例子中的节点的结构将是:
node c = node(7, 0);
node b = node(3, &c);
node a = node(10, &b);
其中0
装置空指针,并且是指一个特殊值“没有指向”。
至于typedef:它基本上为所提到的数据类型分配一个不同的名称。就像:#define superInt __int64 – 2013-04-20 17:48:08
是的,标准库包含一个单独和一个双向链表,分别称为'std :: forward_list'和'std :: list'。为了理解'typedef',继续参加你的课程? – 2013-04-20 17:48:22
@KerrekSB非常棒的建议你.... – user2171775 2013-04-20 17:55:18