单链表的初始化,高手帮解释下啊!

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:45:51
#include <malloc.h>
#include <stdio.h>
#define Ok 1
#define Error 0
#define SIZE sizeof(node)

typedef int datatype;

typedef struct node * pointer;
struct node{
datatype data;
pointer next;
};
typedef pointer lklist;

lklist initiate_lklist(){
lklist t = (lklist)malloc(sizeof(node));
t->next = NULL;
return t;
}

void main(){
lklist head = initiate_lklist();
}
我的问题:
(1)、代码写得有问题吗?
(2)、这是带头结点的单链表,还是不带头结点的单链表?如果是带头结点的单链表,请帮我指明下那个是头指针,那个是头结点。
(3)、在主函数中使用,这样写对吗?

(1).代码没有问题,可以通过编译,只是有点不规范,这与个人编程习惯有关。
(2).这是带头结点的单链表,准确的说,还不确定,因为要看你之后怎么处理这个head了,你不对它的数据域赋值就是头结点,对它赋值了就是首元结点。如果把它看做头结点,head就是头指针,头结点就是head指向的结点。
(3).这样写没问题。