本文主要是介绍不带头结点的头插法和尾插法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可见:不带头指针的插入操作比较繁琐,尤其是尾插法,每次需要遍历链表找到尾节点,然后执行插入操作
typedef int DATA;
struct SNode
{DATA data;SNode *pNext;
};SNode *g_pHead = NULL;/* 不带头结点的尾插法和头插法 */
void AddHead(DATA d)
{SNode *p = (SNode *)malloc(sizeof(SNode));p->data = d;p->pNext = g_pHead; //新节点的后继g_pHead = p; //首结点
}void AddTail(DATA d)
{SNode *ptr = g_pHead;SNode *p = (SNode *)malloc(sizeof(SNode));p->data = d;p->pNext = NULL;if (!ptr) //第一次为空节点时{g_pHead = p;return;}while (ptr->pNext) //循环查找尾节点,然后插入{ptr = ptr->pNext;}ptr->pNext = p;}
这篇关于不带头结点的头插法和尾插法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!