写在前边:单链表:
1.带头结点的单链表:L头指针->头结点(data域不存数据元素,只指向下一个元素)->a1->a2->..->NULL
2.不带头结点的单链表:L头指针->a1->a2...->NULL
以上两种区别在于:无头结点的单链表在进行插入/删除元素时要对i=1的情况做特殊处理
一、带头结点的单链表基本操作
#include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; bool init_LinkList_head(LinkList &L); bool empty_LinkList_head(LinkList L); bool insert_LinkList_head(LinkList &L,int i,int e); bool insertNextNode_LinkList_head(LNode *p,int e); bool insertPriorNode_LinkList_head(LNode *p,int e); bool insertPriorNode2_LinkList_head(LNode *p,LNode *s); bool delete_LinkList_head(LinkList &L,int i,int &e); bool deleNode_LinkList_head(LNode *p); LNode * getElem_LinkList_head(LinkList L,int i); LNode * locateElem_LinkList_head(LinkList L,int e); int length(LinkList L); LinkList List_tailInsert_LinkList_head(LinkList &L); LinkList List_headInsert_LinkList_head(LinkList &L);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步