回 帖 发 新 帖 刷新版面

主题:链表长度赋值错误

麻烦大家帮我看看
typedef struct LNode{
    ElemType time;
    char name[20];
    int roomnum;
    long int phonenum;
    long int QQnum;
    int len;
    char roomtype[10];
    struct LNode *next;
    int data;
}LinkList;

int ListLength(LinkList *L)
{ /* 初始条件:线性表L已存在。操作结果:返回L中数据元素个数 */
   int i=0;//记录链表中数据元素个数
   LinkList *p=L->next; /* p指向第一个结点 */
   while(p) /* 没到表尾 */
   {
       p=p->next;
       i++;
   }
   return i;
}
为什么我在主函数那里用
LinkList L;    
int used=ListLength(&L);
调用不了呢?
先谢谢大家了!

回复列表 (共5个回复)

沙发

L是 什么?
是 一个节点还是链表的头节点
如果是指向 一个链表的头结点应该可以的啊

板凳

是指向头结点的哦,不过还是不行啊!

3 楼

你把定义的那段链表程序发过来看哈

4 楼

好像不能这么用,你可以这样试试:
int main()
{
    LinkList*L=new LinkList;
    /*
      这里对L赋初值
    */
    int used=ListLength(L);
    cout<<used<<endl;//或其他输出语句
    return 0;
}

5 楼

谢谢大家哦,原来是我链表那里没定义!

我来回复

您尚未登录,请登录后再回复。点此登录或注册