???????^O^~ 2021-07-26 10:38 采纳率: 88.9%
浏览 42
已结题

想链表中插入结点,为什么函数声明用的是**H而不是*H?


#include <stdlib.h>
#include <stdio.h>
#define LEN sizeof(struct node)
struct node
{    int Data;
    struct node *Link;
} *H;
void InsertNode(struct node **H, struct node *p, int b)
{ struct node *x;
  x = (struct node *)malloc(sizeof(struct node));  
        /* 取空结点 */
  x->Data = b;      x->Link = 0;  /* 值为b */
  if (p == 0) 
    { x->Link = *H;  *H = x;} /* 表头插入 */
  else
    { x->Link = p->Link;  p->Link = x;}  /* p后插入 */
}
int main()
{  int A[8]={25,73,60,37,98,90,24,30};
   int i;
   struct node *p;
   H = (struct node *)malloc(sizeof(struct node));
   H->Data = A[0];  H->Link = 0;
   p = H;
   for (i=1; i<8; i++)
   {   p->Link = (struct node *)malloc(sizeof(struct node));
       p=p->Link;  p->Data = A[i];   p->Link = 0;
   }   
   p = H;
   printf("打印结点中元素值:\n");
   while (p!=0)
   {  printf("%5d",p->Data);        p = p->Link;   }   
   printf("\n");
   p=0;
   InsertNode(&H, p, 15);
   printf("打印新表中结点元素值:\n");
   p=H;
   while (p!=0)
   {  printf("%5d",p->Data);        p = p->Link;   }   
   printf("\n");

} 
  • 写回答

3条回答 默认 最新

  • 八云黧 2021-07-26 10:45
    关注

    原函数中使用到H的语句是{ x->Link = *H; *H = x;},如果H是struct node *H,*H就是struct node,既不能通过x->Link = *H赋值(类型不匹配),也不能用 *H = x保存x。
    其实也应该可以写成一次指针

    void InsertNode(struct node *H, struct node *p, int b)
    { struct node *x;
      x = (struct node *)malloc(sizeof(struct node));  
            /* 取空结点 */
      x->Data = b;      x->Link = 0;  /* 值为b */
      if (p == 0) 
        { x->Link = H;  H = x;} /* 表头插入 */
      else
        { x->Link = p->Link;  p->Link = x;}  /* p后插入 */
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 创建了问题 7月26日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?