在定义一个数组时,系统会为数组分配一段连续的储存空间,而链表由若干节点组成,在内存中的储存位置通常是不连续的。并且两个结点之间通常由指针从一个结点指向另一个结点,所以结点由两部分组成,数据域和指针域。
定义时
struct node{
数据类型 数据;//数据域
node *下一个地址;//指针域
};
链表分为带头结点的链表和不带头结点的链表。
头结点称为head,其中不放任何数据,头结点的指针指向第一个数据域有内容的结点,这个结点称为第一结点,最后一个结点的指针域指向NULL,即空地址,表示一条链表的结尾。
使用new为链表分配内存空间
int *p=new int;
node *p=new node;
注意申请的空间不能过大,比如int *p=new int[1000000],否则会返回NULL。
在使用完new后,最后使用delete来释放new分配的内存空间。
delete(p);