链表属于线性表,它是由结点组成的
结点分为两个部分:数据域和指针域
初始化链表并输出
typedef struct Node{
int data; //数据域
struct Node *next; //指针域
}Node;
//链表的初始化
void create(){
//动态申请空间 (head 指针指向这个空间)
Node *head = (Node *)malloc(sizeof(Node *));
//判断空间是否开辟成功
if(head == NULL){
printf("空间开辟失败!\n");
return;
}
//头结点,指针域为NULL
head->next = NULL;
//返回头结点 指针
return head;
}
void print(Node *head){
if(!head){ //判断空间是否开辟成功
return;
}
Node *q=head->next; //指针p指向头结点的下一个
while(q){
printf("%d ",q->data); //输出
q=q->next; //指针后移
}
}
int main(){
Node *head = (Node *)malloc(sizeof(Node)); //定义头结点
head->next=NULL; //让头结点指向的下一个为空
create(head); //初始化链表
print(head); //遍历链表
}