自学内容网 自学内容网

DAY4 作业

1.单向链表头插和头删

//单向链表创建节点
Linklist create_node()
{
Linklist s = (Linklist)malloc(sizeof(struct Node));
if(NULL == s)
return NULL;
s->data = 0;
s->next = NULL;
return s;
}

//单向链表头插
Linklist insert_head(int element,Linklist head)
{
//创建新节点
Linklist s = create_node;
if(NULL == s)
return head;
s->data = element;

//判断链表是否为空
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{
Linklist del = head;
head = head->next;
free(del);
del = NULL;
}
return head;
}

2.双向链表头插和头删

//双向链表结构体
typedef struct Node
{
int data;
struct Node *next;
struct Node *priv;
}*Doublelink;

//双向链表创建节点
Doublelink create_node()
{
Doublelink s = (Doublelink)malloc(sizeof(struct Node));
if(NULL == s)
return NULL;
s->data = 0;
s->next = s->priv = NULL;
return s;
}

//双向链表头插
Doublelink insert_head(int element,Doublelink head)
{
Doublelink s = create_node();
if(s == NULL)
return head;
s->data = element;

//判断链表是否为空
if(head == NULL)
{
head = s;
}else{
s->next = head;
head->priv = s;
head = s;
}
return head;
}

//双向链表头删
Doublelink delete_head(Doublelink head)
{
//判断链表是否为空
if(NULL == head)
return head;
//存在多个节点
Doublelink q = head;
head = head->next;
if(head != NULL)
head->priv = NULL;
free(q);
q=NULL;
return head;
}


原文地址:https://blog.csdn.net/qq_44121517/article/details/136045914

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!