链表struct
struct ss{
  int a;
int b;struct ss* next;
}难就难在,链表节点数据要在一个函数中填充,但要链表数据函数外还有效

解决方案 »

  1.   

    给函数传入指向链表头指针的指针(即二级指针)或者链表头指针的引用。
    如:
    void createlist(ss** head)
    {
        *head = new ss;
        ……    
    }或者:
    void createlist(ss* &head)
    {
        head = new ss;
        ……
    }
      

  2.   

    和可以从函数中返回头指针://这次是C版本的,:)
    struct ss * createlist()
    {
        struct ss * head = (struct ss*)malloc(sizeof(struct ss));
        ……    return head;
    }
      

  3.   

    typedef struct ptr
    {
    int  buf;
    struct ptr* next;
    struct ptr* pre;
    }ptr;void CTestDlg::OnButton10() 
    {
    ptr* p;
    p=new ptr;
    p->buf=0;
    ptr* p1=p; for(int i=1;i<5;i++)
    {
    p->next=new ptr;
    ptr* p0=p;
    p->buf=i;   
    p=p->next; 
    p->pre=p0;
    } p->next=p1;
    p1->pre=p;

    }