打印

单向链表问题

[复制链接]
1095|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2012-5-13 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
struct node
{

void* next;
int data;

};

struct list
{

node* head;

list(){ head=new node();}

~list() { clear(); };

其他函数.................

};

void Reverse(list& another)
{
........
};


完善函数Rerverse,实现将 list逆序, 注意:list是单向的, 不是“逆序输出”,是将整个链表翻转。



我 的思路:

对比数组逆序,采用指针进行首尾扫描, 一个向前,一个向后, 进行交换数据。后来我发现是不行的,因为是单向,链表无法做到 向后扫描!!!!


不知道谁有思路解决这个问题。。。。

相关帖子

沙发
无冕之王| | 2012-5-13 11:23 | 只看该作者
采用头插法建立链表的方式进行。首先从已有链表的头结点开始。然后顺序遍历,每次遍历一个节点,把这个节点放置在新链表的头结点后面。这样就完成了倒置了。

使用特权

评论回复
板凳
yybj| | 2012-5-13 11:36 | 只看该作者
最简单的方法是 后一个节点不停的往前(指表头)插入
比如:1 2 3 4
2往前插后形成:2 1 3 4
3再往前插后形成: 3 2 1 4  
4再往前插后就是 4 3 2 1 了 这个实现代码很容易的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝