c 语言单向链表构造函数,用C++类实现单向链表的增删查和反转操作方法

数据结构这东西,理解起来不算难,但是实现难度就不小了,虽然思路很清晰,但不知道从何下手还有语言的细节问题一直是阻碍初学者的主要障碍(比如我)。今天用了一下午时间终于独立完成了链表操作。

找网上的代码,大多用了结构体,还有些并不适合刚学c++或者数据结构的人看,于是我是用类写的,代码比较符合学生的习惯和水平。

先看类定义

?

两个类,node用来表示结点,node *next,表示next是指向node型的指针(一些同学看不懂这句,会和构造函数弄混),linklist类是存放头指针和定义操作函数用的。

一、整表的创建

整表创建有两种方法,头插(倒叙)和尾插(顺序),这里只说头插。

?

二、单结点插入

?

三、单结点删除

?

四、查找结点

?

五、倒置

由于头插是倒叙输出,就想倒置,网上好多代码都是新建一个链表,或者用到尾指针双向链表之类,我觉得不会这么麻烦于是就想了这么个算法

?

一下午时间主要就耽误在这里了,我一开始写的就是注释那句话,后来总是输出头结点的数据,仔细观察发现原来是头指针跟着头结点换到了最后面,然后这个问题通过下面两句解决,保证头指针永远在表头。

六、结语

写到这里,终于明白为什么网上包括书上很多代码都是看懂容易写起来难,因为书或者博客作者就不会把他犯过的错误贴出来,一些简单的代码也没有很多注释,自己写的时候也理解他们了,想详细写出每一步的理由还是太难了,无法表达的东西太多,所以想掌握一个东西还是亲手实践,多犯错误才能进步,因为书上或网上很难找到细节之处易犯的错误,以为自己会了的时候就用纸写出来,到头来会发现还是不会……循环几次,就差不多了。

以上这篇用C++类实现单向链表的增删查和反转操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值