链表
头文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef int datatype;
//创建节点结构体
typedef struct Node
{
//数据域:存储数据元素
datatype data;
//指针域:存储下一个节点的地址
struct Node *next;
}*Linklist;
Linklist create_node();
Linklist insert_head(datatype element,Linklist head);
Linklist delete_head(Linklist head);
函数
Linklist create_node()
{
Linklist s=(Linklist)malloc(sizeof(struct Node));
if(NULL==s)
return NULL;
//成功
//s节点的数据域清0
s->data=0;
//s节点的指针域指向NULL
s->next=NULL;
return s;
}
Linklist insert_head(datatype element,Linklist head)
{
//创建新节点
Linklist s=create_node();
if(NULL==s)
return head;
s->data=element;
//1,判断链表为空
if(NULL==head)
{
head=s;
}
else //链表不为空
{
s->next=head;
head=s;
}
return head;
}
Linklist delete_head(Linklist head)
{
//1,判断链表为空
if(NULL==head)
{
return head;
}
else //链表存在1个或多个节点
{
Linklist del=head;
head=head->next;
free(del);
del=NULL;
}
return head;
}