c++ 单向链表和双向链表有什么区别?各自有什么优缺点?

c++ 单向链表和双向链表有什么区别?各自有什么优缺点?,第1张

单向链表双向链表的区别:

一、方向不同

1、单向链表:只有一个指向下一结点的指针,也就是只能next。

2、双向链表:除了有一个指向下一结点的指针外,还有一个指向前一结点的指针,可以通过prev()快速找到前一结点。

二、使用情况不同

1、单向链表:适用于节点的增加删除。

2、双向链表:适用于需要双向查找节点值的情况。

三、读取不同

1、单向链表:只能单向读取。

2、双向链表:可以双方向读取。

单向链表和双向链表的区别可看下图:

单向链表的优点和缺点:

1、单向链表:只有一个指向下一个节点的指针。

2、优点:单向链表增加删除节点简单。遍历时候不会死循环;

3、缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。

4、适用于节点的增加删除。

双向链表的优点和缺点:

1、双向链表:有两个指针,一个指向前一个节点,一个后一个节点。

2、优点:可以找到前驱和后继,可进可退;

3、缺点:增加删除节点复杂,多需要分配一个指针存储空间。

4、适用于需要双向查找节点值的情况。

单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;

列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针。

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

参考资料:百度百科-单向链表

参考资料:百度百科-双向链表

http://topic.csdn.net/t/20050425/17/3965579.html在现阶段,有两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将可以直接理解的明文数据加密为不可直接理解的密文数据,然后,在需要的时候,可以使用一定的算法将这些加密以后的密文解密为原来可以理解的明文。双向加密适合于隐秘通信,例如,用户在网上购物时,需要向网站提交xyk密码,用户当然不希望自己的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,用户希望自己的xyk密码是通过加密以后,再在网络传送,因此网站接收到用户的数据以后,通过解密算法就可以得到准确的xyk账号。单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。单向加密一般用于数据库中用户信息的加密。当用户创建一个新的账号或者密码时,他的信息不是直接保存到数据库中,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。

不知道你说的单向与双向是不是网卡的单双工状态的切换,一般在网络线路较好的情况下都是使用双全工状态,他的意思是双向通信工作,速度比较快,且撞车较少(感觉就是电话,两面可以一起说话),另外一种是单工状态,就是上传和下载只能独自工作,速率较慢但是对线路质量要求较低,一般线路质量不好的时候常用单双工状态。(感觉像对讲机只能一个人说话一个人听)。像你说的链接时双向不行,单向就可以了很可能是这个原因!!猜测


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10044617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存