typedef :起别名,可以方便修改数据类型
#include<stdio.h>
typedef struct node
{
int num;
struct node *pNext;
}Node_t,*pNode_t;
typedef struct {
Node_t num;//数据
pNode_t phead = NULL;//指针
}
一、不带头结点的链表的头尾插法
头插法:首先判断头指针是否为空,如果为空,将首尾指针指向新节点,如果不为空,则将新节点的指针指向首节点,然后首指针指向首节点。
void headInsert(pNode_t *ppHead, pNode_t *ppTail, int num)
{
pNode_t pNew = (pNode_t)calloc(1, sizeof(Node_t));
pNew->num = num;
if (*ppHead== NULL)
{
*ppHead = pNew;
*ppTail = pNew;
}
else
{
pNew->pNext = *ppHead;
*ppHead = pNew;
}
}
尾插法:同头插法一样,判断首指针是否为空,为空,首尾节点指向新节点,不空,将尾节点连接新节点,然后尾指针指向新节点
void tailInsert(pNode_t *ppHead, pNode_t *ppTail, int num)
{
pNode_t pNew = (pNode_t)calloc(1, sizeof(Node_t));
pNew->num = num;
if (*ppHead == NULL)
{
*ppHead = pNew;
*ppTail = pNew;
}
else
{
(*ppTail)->pNext = pNew;
*ppTail = pNew;
&n

本文介绍了如何在C语言中实现不带头结点的链表操作,包括头尾插法、有序插入以及增删查改。在链表删除操作中,强调了对空链表的处理,首节点删除以及防止悬空指针的方法。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



