2013-10-09 38 views
0

我的老师给了一个驱动程序来完成一个程序,我不确定如何编写插入函数。搞清楚为链表插入函数参数?

行给我的麻烦:

you.Insert(me,0); 

you是默认的构造函数和me是一个明确的值构造,所以这条线应该创建you节点与me内容。

我迷路了解如何编写参数来访问我为我插入功能

void WRD::Insert(?, int new_data) 

我会包括明确的构造函数我有,任何见解了解这一精神将帮助。 (包括例如应该像还是基于他们给我一个例子什么insert。)

WRD::WRD(const string & s) 
{ 
    cout<<"one called\n"; 
    front = 0; 
    for(unsigned i=0; i<s.length(); i++) 
    { 
     AddChar(s[i]); 
    } 
} 


class node 
{ 
public: 
    char symbol; 
    node * next; 
}; 

v

oid Insert(node * &ptr, int new_data) 
{ 
    node *new_ptr = new node; 

    new_ptr -> data = new_data; 
    new_ptr -> next = 0; //always initialize a pointer 

    if (Empty(ptr)) 
    { 
     ptr = new_ptr; 
    } 
    else if (new_ptr->data <= ptr->data) 
    { 
     new_ptr->next = ptr; 
     ptr = new_ptr; 
    } 
    else 
    { 
     node *fwd_ptr=ptr, *pre_ptr=ptr; 

     while(fwd_ptr!=0 && (fwd_ptr->data < new_ptr->data)) 
     { 
      pre_ptr = fwd_ptr; 
      fwd_ptr = fwd_ptr->next; 
     } 

     if (fwd_ptr == 0) 
     { 
      pre_ptr->next = new_ptr; 
     } 
     else 
     { 
      new_ptr->next = fwd_ptr; 
      pre_ptr->next = new_ptr; 
     } 
    } 
} 
+1

'你'不是一个构造函数。这是一个对象。 'insert'是对象拥有的方法。 (假设)。也许是时候停下来盯着电脑显示器并检查你的笔记 –

+0

我没有说你是一个构造函数,我说它是用于构造函数的。 – Ron

+0

我引用''你'是默认构造函数'我假设你的意思是“你”作为名称。 –

回答

0

喜欢我认为(假设我理解你的权利)

void WRD::Insert(const WRD& w, int new_data) 

它可能有助于显示更多的驱动程序,特别是如何声明youme

+0

WRD你; WRD我(“123aabc102”); – Ron

+0

@John - “你和我是如何声明的” - 困惑? –

+0

什么是AddChar?什么是“插入”? –