程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c-C++鏈表類前插法與尾插法問題

c-C++鏈表類前插法與尾插法問題

編輯:編程綜合問答
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;

}

這是我寫的代碼,請看主函數,如何使用了前插法後再用尾插法,我寫的代碼尾插法總是把前插法覆蓋了 !!!!求大神解答,感激不盡!!

最佳回答:


void headinsert(const StudentNode&stu)
{
    StudentNode*t=new StudentNode(stu);
    t->next=head;
    head=t;
    if(tail == NULL)
        tail = t;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved