位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

在C语言用自引用结构实现链表结构需要解决三个问题

提问人:杨紫红发布时间:2020-11-17
(1)必须指出链表第一个结点的位置,否则无法存取该链表中的结点
    实现方法:定义一个指向该结构对象的指针,或定义一个该结构类型的变量,使其指向链表的第一个结点即可。如:
            struct node *head;
 
(2)在建立一链表时,如何获得下一个新的结点的存放空间。     
    实现方法:用C编译系统提供的库函数malloc(size)动态分配存储空间得到。
除此之外,还可用calloc函数。如:
           struct node *p1, *p2;
                …
            p2=(struct node *) malloc(size(struct node));
   或: p2=(struct node *) calloc(1, size(struct node));   
            if (p2= =NULL)  exit(0);
            p1->next=p2;  /*此处设p1指向新结点的上一结点*/
另外:free函数可用于释放内存区。
  如:free(p);  表示释放由p指向的内存区,使这部分内存区能被其他变量使用。
 
(3)要明确指出链表的链尾。
    实现方法:通常把最后结点中的成员项next置为空指针NULL即可。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部