C++缺少类模板list的参数列表??

#include<iostream>usingnamespacestd;classnode{public:intdata;node*prior;node*next;};e... #include<iostream>
using namespace std;
class node{
public:
int data;
node*prior;
node*next;
};
enum error_code{
success
};
template<typename elementype>
class list{
private:
int count;
node*head;
public:
list();
~list();
int length()const;//求长度
bool get_element(const int i, int &x)const;//按序号取元素
node *locate(const int x)const;//搜索
bool insert(const int i, const int x);//插入;
bool delete_element(const int i);
node *get_head(){ return head; }
void inverse();

list::list(){
head = new node;
head->prior=head->next = head;
count = 0;
}
int list::length()const{
return count;
}
bool list::get_element(const int i, int &x)const{
node *p = head->next;
int j = 1;
while(p !=head&&j != i){
p = p->next; j++;
}
if (p == head){ return false };
x = p->data;
return true;
};
node * list::locate(const int x)const{
node *p = head->next;
while (p != head){
if (p->data == x)return p;
else p = p->next;
}
return head;
}
bool list::insert(const int i, const int x){
if (count = 0){ node*q = new node;
q->prior = head; head->next = q; q->next = head; head->prior = q;
q->data = x; count = 1; return true;
}
node *p = head; int j = 0;
while (j != i&& p != head){
p = p->next; j++
}
if (i<1 || i>count + 1)return false;
node *s = new node;
s->prior - p->prior;
s->next = p;
p->prior = s;
s->prior->next = s;
s->data = x;
count++;
return true;
}
bool list::delete_element(const int i){
node *p = head->next;int j = 0;
while (j != i - i && p!=head){
p = p->next; j++;
}
if (i<1 || i>count)
return false;
p->prior->next = p->next;
p->next->prior = p->prior;
delete p;
count--;
return true;
}
list::list(){
while (count != 0){
delete_element(1);
}
}
void list::inverse(){
node *s = new node;
node *p = head;
for (int i = 0; i <= count;i++){
s->prior = p->prior;
s->next = p - next;
p->prior = s->next;
p->next = s->prior;
p = p->prior;
}
};
};
int main(){
list data1;
int x;
node *q;
for (int i = 1; i <= 10; i++) {
data1.insert(i, rand() % 100 + 1);
data1.get_element(i, x);
cout << x << " " << data1.locate(x) << " ";
}
cout << endl;
data1.inverse();
for (int j = 1; j <= 10; j++){
data1.get_element(j, x);
cout << x << " " << data1.locate(x) << " ";
}
cout << endl;
return 0;
}
问题出在主函数第一行,求解大佬怎么改??
展开
 我来答
东风冷雪
2017-04-27 · TA获得超过3945个赞
知道大有可为答主
回答量:3910
采纳率:76%
帮助的人:975万
展开全部
#include<iostream>
using namespace std;
class node{
public:
    int data;
    node*prior;
    node*next;
};

enum error_code{
success
};
template<typename elementype>
class list{
        private:
        int count;
        node*head;
        public:
        list();
        ~list();
        int length()const;//求长度
        bool get_element(const int i, int &x)const;//按序号取元素
        node *locate(const int x)const;//搜索
        bool insert(const int i, const int x);//插入;
        bool delete_element(const int i);
        node *get_head(){ return head; }
        void inverse();

list::list()    //  list();
    {
            head = new node;
            head->prior=head->next = head;
            count = 0;
        }

    int list::length()const   // int length()const;//求长度
    {
    return count;
    }

bool list::get_element(const int i, int &x)const  // bool get_element(const int i, int &x)const;//按序号取元素
{
    node *p = head->next;
    int j = 1;
    while(p !=head&&j != i)
        {
            p = p->next; j++;
       }
        if (p == head){ return false };
        x = p->data;
        return true;
}


node * list::locate(const int x)const   //  node *locate(const int x)const;//搜索
{
        node *p = head->next;
        while (p != head){
        if (p->data == x)
            return p;
        else
        p = p->next;
        }
        return head;
}


bool list::insert(const int i, const int x)  //  bool insert(const int i, const int x);//插入;
   {
        if (count == 0)
            { node*q = new node;
             q->prior = head;
              head->next = q;
              q->next = head;
              head->prior = q;
              q->data = x;
              count = 1; return true;
    }


    bool insert(const int i, const int x);//插入;
   {

 {

    node *p = head; int j = 0;
    while (j != i&& p != head)
    {
         p = p->next; j++
   }
   if (i<1 || i>count + 1)
    return  false;
        node *s = new node;
        s->prior - p->prior;
        s->next = p;
        p->prior = s;
        s->prior->next = s;
        s->data = x;
        count++;
        return true;
}
   }


    bool list::delete_element(const int i)  //  bool delete_element(const int i);
  {
    node *p = head->next;
    int j = 0;
    while (j != i - i && p!=head)
        {
          p = p->next; j++;
      }
    if (i<1 || i>count)
    return false;
    p->prior->next = p->next;
    p->next->prior = p->prior;
    delete p;
    count--;
    return true;
    }


    list::list()  //  list();
    {
        while (count != 0){
        delete_element(1);
    }
    }


void list::inverse() // void inverse();
{
        node *s = new node;
        node *p = head;
        for (int i = 0; i <= count;i++)
        {
            s->prior = p->prior;
            s->next = p - next;
            p->prior = s->next;
            p->next = s->prior;
            p = p->prior;
        }
}


    int main()
    {
            list data1;
            int x;
            node *q;
    for (int i = 1; i <= 10; i++)
    {
        data1.insert(i, rand() % 100 + 1);
        data1.get_element(i, x);
        cout << x << " " << data1.locate(x) << " ";
    }
    cout << endl;
    data1.inverse();
    for (int j = 1; j <= 10; j++){
    data1.get_element(j, x);
    cout << x << " " << data1.locate(x) << " ";
    }
    cout << endl;
    return 0;
    }

问题一大推,我修改了一下。

自己写的嘛, 之家 LIST容器啊

追问

这是怎么回事呢??加了也不对,不加也不对TAT

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式