c语言dlnode *l表示,【请教】关于gcc和循环双向链表

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

4 typedef struct {

5 int data;

6 int freq; //表示访问频度

7 struct DLnode *next;

8 struct DLnode *pre;

9 }DLnode;

10

每当对链表进行一次 Locate(L,x)的操作后,被访问的结点(即元素值等于 x 的结点)中的频度域 freq 的值便增 1,同时调整链表中结点之间的次序,使其按访问频度非递增 的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。

72 int Locate(DLnode *L, int x)

73 {

74 DLnode *p = L->next, *q;

75 while(p != L && p->data != x) p = p->next;

76 if(!p) return 0;

77 p->freq++;

78 q = p;

79 while(q != L && q->freq <= p->freq) q = q->next;

80 p->pre->next = p->next;

81 p->next->pre = p->pre;

82 p->pre = q;

83 p->next = p->next;

84 q->next->pre = p;

85 q->next = p;

86 return 1;

87 }

gcc -g 3_38.c -o 3_38

显示:

3_38.c:80:8: 错误: 提领指向不完全类型的指针

3_38.c:81:9: 错误: 提领指向不完全类型的指针

3_38.c:82:9: 警告: 从不兼容的指针类型赋值 [默认启用]

3_38.c:84:9: 错误: 提领指向不完全类型的指针

3_38.c:85:10: 警告: 从不兼容的指针类型赋值 [默认启用]

请问是不是80,81,84的用法是错误的?一定得再用一个指针?

另外82的集警告是不是正常的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值