哈喽(,・∀・)ノ゛
好久没更新啦哈哈
俗话说得对
断更只有0次和无数次
好吧,进入正题,
最近学了链表,简单和大家分享一下。
链表,简单来说就是一种数据结构,这种结构可以使用一系列的操作把内存中的某些元素串联起来,给大家看一张图就明白了
上面这张图有点土,但自我认为还是很形象
这个链子不是定义的,是通过指针形成的!!!
首先,我们需要定义一个结构体来定义链表:
struct node{
ElemType data;
node *next;
};
这里的Elemtype是element type的缩写,还是看不懂的,我把百科的链接搬来了,自己去研究吧
我们已经完成了node结构体的定义,就是已经把上面那张图中的正方形搞好了,接下来,我们需要一根链子把这些东西都串在一起,变成一个链表。
int main()
{
node *head,*p;
head = new node;
head->next = NULL;
//在这个程序中,我们输入的都是正整数,所以,while循环判断的是输入的数据是否<0
int e=1;
while(e>0)
{
cin>>e;
p = new node;
p->data=e;
p->next=head->next;
head->next=p;
}
return 0;
}
这个程序看不懂对不对,我给大家慢慢解释
首先,p = new node,在内存中开辟一个新的内存空间给p,p.data=e,把e的值给p,p.next=head.next,p的下一个是head的下一个,也就是前一个p或是null。head.next=p,p是head的下一个,这样子的话,这个链子 就串上了。
这就是一个简易的头插单链表,后面还会更新双链表、循环链表、链表题目等等
最后,感谢我的粉丝们,有你们的陪伴,我才有发文的动力!