小伙伴可以自行调试哦
一、头文件(STlist.h)
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SListDataType;//定义int类型
typedef struct SListNode
{
SListDataType data;
struct SListNode* next;//存储下一个节点的信息
}SListNode;
//打印节点信息
void SListPrint(SListNode* phead);
//创建一个节点
SListNode* BuySListNode(SListDataType x);
//尾插一个节点
void SListPushBack(SListNode** pphead, SListDataType x);
//头插一个节点
void SListPushFront(SListNode** pphead, SListDataType x);
//尾删一个节点
void SListPopBack(SListNode** pphead);
//头删一个节点
void SListPopFront(SListNode** pphead);
//单链表查找
SListNode* SListFind(SListNode* phead, SListDataType x);
//在单链表pos之前插入x
void SListInsertBefore(SListNode** pphead, SListNode* pos, SListDataType x);
//在单链表pos之后插入x
void SListInsertAfter(SListNode* pos, SListDataType x);
//单链表删除pos位置之前的值
void SListEraseBefore(SListNode** pphead, SListNode* pos);
//单链表删除pos位置之后的值
void SListEraseAfter(SListNode* pos);
//销毁单链表
void SListDestory(SListNode** pphead);
二、实现函数(STlist.c)
assert:断言
#include "STlist.h"
void SListPrint(SListNode* phead)
{
SListNode* cur = phead;
while (cur != NULL)
{
printf("%d->", cur->data);
cur = cur->next;
}
printf("NULL\n"