链表的学习(一)

哈喽(,・∀・)ノ゛
好久没更新啦哈哈
俗话说得对
断更只有0次和无数次


好吧,进入正题,
最近学了链表,简单和大家分享一下。
链表,简单来说就是一种数据结构,这种结构可以使用一系列的操作把内存中的某些元素串联起来,给大家看一张图就明白了

链表示意图 作者戚洪昊,转载请标明信息

上面这张图有点土,但自我认为还是很形象
这个链子不是定义的,是通过指针形成的!!!
首先,我们需要定义一个结构体来定义链表:

struct node{
	ElemType data;
	node *next;
};

这里的Elemtype是element type的缩写,还是看不懂的,我把百科的链接搬来了,自己去研究吧

Elemtype是啥子

我们已经完成了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的下一个,这样子的话,这个链子 就串上了。
这就是一个简易的头插单链表,后面还会更新双链表、循环链表、链表题目等等


最后,感谢我的粉丝们,有你们的陪伴,我才有发文的动力!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值