这两天复习基础,关于C语言单链表的操作,自己理解整理了一下,博客记录一下。
本文操作的是有首节点的单链表,首节点作用:使链表的其他节点的插入删除操作可以统一,不用考虑链表头指针情况。
头文件:single_list_practice.h
#ifndef single_list_practice_h
#define single_list_practice_h
#include <stdio.h>
#include <stdbool.h>
typedef struct my_list{
int v;
struct my_list *next;
}MY_LIST;
void InitList(MY_LIST **pHead);
void AddItem(MY_LIST *pHead, int a);
MY_LIST *FindElem(MY_LIST *pHhead, int a, bool pos);
void InsertItem(MY_LIST *pItem, int a);
void PrintList(MY_LIST *pHead);
void DelItem(MY_LIST *pHead, int item);
void CleanMyList(MY_LIST *pHead);
void ReverseMyList(MY_LIST *pHead);
#endif /* single_list_practice_h */
源文件:single_list_practice.c
#include "single_list_practice.h"
#include <stdlib.h>
#include <stdbool.h>
//创建链表头结点,头结点内容不在意,创建头结点的意义在于,将链表的首元节点的插入删除啥的,跟其余节点保持一致 不用单独处理
void InitList(MY_LIST **pHead){
*pHead = (MY_LIST *)malloc(sizeof(MY_LIST));
if (NULL == *pHead){
printf("pHead failed!\n");</