珞珈山水BBS电脑网络程序人生 → 单文区文章阅读

单文区文章阅读 [返回]
发信人: kittig (Never & Ever), 信区: Programm
标  题: Re: 求助:关于C数据结构单连表就地逆置
发信站: BBS 珞珈山水站 (Thu Apr 28 11:21:15 2005)

typedef struct/*定义顺序堆栈*/
{
    struct slnode Stack[maxnum]; (要求在数组里面存放单连表的地址)
    int Top;
}qstype;
void converse(slnodetype *la)
{
    slnodetype *p;  qstype *q; q->Top=0;
                                ~~~~~~~~q是指针,这里不可以这么赋值。
    if(q->Top>=maxnum-1)
    {
         printf("\n 堆栈已满\n");
    }
    p=la;
    while(p->Next!=NULL)
    {
         q->Stack[q->Top]=p->Next;   q->Top++;
         p=p->Next;
    }

    p=la;
    while(q->Top>0)
    {
        p->Next=q->Stack[q->Top]; p=p->Next;  q->Top--;
    }
    p->Next=NULL;
}

-------------------
void converse(slnodetype *(&la))
{
    slnodetype *p, *q, *r;

    if (la==NULL || la->next==NULL) return;
    r = la; q = la->next;
    while(q!=NULL)
    {
        p = q->next;
        q ->next = r;
        r = q;
        q = p;
    }
    la = r;
}

对指针类型的引用不知道那个*和&是什么顺序了。
--

※ 来源:·珞珈山水BBS站 http://bbs.whu.edu.cn·[FROM: 219.140.84.*]
[返回单文区目录]

武汉大学BBS 珞珈山水站 All rights reserved.
wForum , 页面执行时间:4.911毫秒