怎么移动?我不清楚,还请大家帮忙!!!!!!!!!!

zhdleo 2002-06-02 12:11:23
我定义了个
struct Node{
int num;
struct Node *next;
};
typedef Node *List;

并写了个class
class Gather{
public:
Gather& Insert_elem(int);
............
private: List _front; //使用结构体,定义了2个结点
List _rear;
}

在我写成员函数时,有很多,我只举个例子:
如:
Gather& Gather::Insert_elem(int elem)
{ Node *temp= new Node;
temp = _front; //让临时结点指向头结点
......
//在循环中,我要让临时结点向前不断的加
我的办法是:
temp++;
}

我调试并测试后,发现,temp++;是不对的,不能单纯的用temp++;使temp指向temp的下一个
我只好用: temp = temp->next;

这样虽然解决了向前走的问题,可新的问题又来了!
我有时还需要让temp指向它的前一个,显然temp--肯定不行。
又由于我无法保存temp的前一个,所以不能用临时的变量纪录,再指回去的方法。
我向直接在temp上操作!
那我我该怎么做?????????
...全文
28 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhdleo 2002-06-02
  • 打赏
  • 举报
回复
集合!
其实到底是什么无关紧要!
主要是用结构体在class里声明了2个结点,
在函数实现里又有个temp指向头,现在主要是这个temp的前后移动问题!

要求就是只能对temp,不能再用临时变量倒!
voodoo_man 2002-06-02
  • 打赏
  • 举报
回复
你想用这个类来描述什么问题呢
潘李亮 2002-06-02
  • 打赏
  • 举报
回复
看数据结构的书
zhdleo 2002-06-02
  • 打赏
  • 举报
回复
想来想去,我也只能接受现实!

仔细想来!就是这样!
创造的一个个结点又不是连续的内存空间!

怎么可能简单的用什么++ --呢!!哎!!

countryboy 2002-06-02
  • 打赏
  • 举报
回复
用数组,单向链表也可以使temp指向前面
efanl 2002-06-02
  • 打赏
  • 举报
回复
叮东兄,我觉得……接受现实吧
zhdleo 2002-06-02
  • 打赏
  • 举报
回复
我也知道双向链表结回很好实现,可是

我不想那样!!

真的就不能对temp直接有什么操作吗??
xuying 2002-06-02
  • 打赏
  • 举报
回复
把你的结构修改一下,增加一个指向前一节点的指针就可以了。
struct Node{
int num;
struct Node *prev; // 指向前一节点
struct Node *next;
};

向后移动: temp = temp->next;
向前移动: temp = temp->prev;

参考讲数据结构的书中的双向链表部分。
spgoal 2002-06-02
  • 打赏
  • 举报
回复
temp=temp->next

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧