第二十一天

习题6

要求1:建立两个从小到大排序的链表

实现:创建两个表头,分别进行尾插(顺序输入时),若是乱序则边插边排

要求2:合并链表并顺序输出(从小到大)

实现:创建第三个表头,对另外两个链表里的元素依次删除节点,把删除的节点接上去(相当于边插边排序)。

 方法二:把一个表的表头去掉接到另一个链表的尾,排序时,若每个节点里的东西少,如只有数值,就可以直接交换数值(要知道节点数,采用冒泡选择类的排序方式),但若是节点里的东西多的话,就只能交换节点。

7、题目:设单链表的表头指针为h,结点结构由data和next两个域构成,其中data域为字符型。

试设计算法判断该链表的前n个字符是否中心对称。例如xyx,xyyx都是中心对称。

问题一:输入时如果要一个一个的输入(输一个字符敲下回车)显得太麻烦,

输入数据个数倒是没什么

解决方法:使用getchar()把字符放到缓冲区中再由scanf取出赋值(存疑,且有使用限制)

问题二:怎么比较单链表里的字符(需要比较首尾),链表是单向的,且每一个节点至于上一个节点有关。

解决方法:把链表里的每个元素取出放在字符数组里,之后进行比较(毕竟题目要求仅仅是判断)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值