单链表的所有操作实现
// 动态申请一个节点
SListNode* BuySListNode(SLTDateType x)
//链表初始化
void SListInit(Head* plist)
// 单链表打印
void SListPrint(Head* plist)
// 单链表尾插
void SListPushBack(Head* pplist, SLTDateType x)
// 单链表的头插
void SListPushFront(Head* pplist, SLTDateType x)
// 单链表的尾删
void SListPopBack(Head* pplist)
// 单链表头删
void SListPopFront(Head* pplist)
// 单链表查找
SListNode* SListFind(Head* plist, SLTDateType x)
// 单链表在pos位置之后插入x
void SListInsertAfter(SListNode* pos, SLTDateType x)
// 单链表删除pos位置之后的值
void SListEraseAfter(SListNode* pos)
//释放链表所有空间
void SListDestory(Head* plist)
#include<stdio.h>
#include<stdlib.h>
typedef int SLTDateType;
typedef struct SListNode
{
SLTDateType data;
struct SListNode* next;
}SListNode;
typedef struct Head
{
struct SListNode* head;
}Head;
SListNode* BuySListNode(SLTDateType x) {
SListNode* node = (SListNode*)malloc(sizeof(SListNode));
node->data = x;
node->next = NULL;
return node;
}
void SListInit(Head* plist) {
plist->head = NULL;
}
void SListPrint(Head* plist) {
SListNode* cur = plist->head;
while (cur) {
printf("%d ", cur->data);
cur = cur->next;
}
}
void SListPushBack(Head