liuyawen44 2015-06-26 15:48 采纳率: 37.5%
浏览 3058
已采纳

C++链表类前插法与尾插法问题

#include

using namespace std;
class StudentRecord
{
public:
string stuName;
int stuNo;
StudentRecord(string s,int n)
{
stuName=s;
stuNo=n;
}
void print()
{
cout<<"Name:"< }
};
class StudentNode
{
public:
StudentRecord data;
StudentNode *next;
StudentNode(const StudentRecord&stu,StudentNode *pNext=NULL):data(stu),next(pNext) {};
};
class LinkedList
{
public:
StudentNode * head;
StudentNode * tail;
LinkedList():head(0),tail(0) {};
void headinsert(const StudentNode&stu)
{
StudentNode*t=new StudentNode(stu);
t->next=head;
head=t;
}
void headdelete()
{
StudentNode*t=head;
head=head->next;
delete t;
}
void backinsert(const StudentNode&stu)
{
StudentNode*t=new StudentNode(stu);

    if(tail!=0)
        tail->next=t;
    else
        head=t;
    tail=t;

}
void traverse()
{
    StudentNode*t=head;
    while(t!=0)
    {
        t->data.print();
        t=t->next;

    }
}

private:

};
int main()
{
StudentRecord b("td",4),c("sb",4),d("da",4);
LinkedList a;
a.headinsert(d);
a.backinsert(c);

a.traverse();
return 0;

}

这是我写的代码,请看主函数,如何使用了前插法后再用尾插法,我写的代码尾插法总是把前插法覆盖了 !!!!求大神解答,感激不尽!!

  • 写回答

2条回答

  • zhjandcs 2015-06-27 01:43
    关注
    void headinsert(const StudentNode&stu)
    {
        StudentNode*t=new StudentNode(stu);
        t->next=head;
        head=t;
        if(tail == NULL)
            tail = t;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置