SList.c
#pragma once
#include"SList.h"
#include<stdlib.h>
SListNode* BuySListNode(SListDataType x)
{
SListNode* newNode = (SListNode*)malloc(sizeof(SListDataType));
if (newNode == NULL)
{
printf("申请节点失败!\n");
exit(-1);
}
newNode->data = x;
newNode->next = NULL;
return newNode;
}
void SListPrint(SListNode* phead)
{
SListNode* cur = phead;
while (cur != NULL)
{
printf("%d", cur->data);
cur = cur->next;
}
}
void SlistPushBack(SListNode** pphead, SListDataType x)
{
SListNode* newNode = BuySListNode(x);
if(*pphead==NULL)
{
*pphead = newNode;
}
else
{
SListNode* tail = *pphead;
while (tail->next != NULL)
{
tail = tail->next;
}
tail->next = newNode;
}
}
test.c
#define _CRT_SECURE_NO_WARNINGS
#include "SList.h"
int main()
{
SListNode* pList = NULL;
SlistPushBack(&pList, 1);
SlistPushBack(&pList, 2);
SlistPushBack(&pList, 3);
SlistPushBack(&pList, 4);
SListPrint(pList);
return 0;
}
SList.h
#include <stdio.h>
typedef int SListDataType;
typedef struct SListNode
{
SListDataType data;
struct SListNode* next;
}SListNode;
void SlistPushBack(SListNode** pphead, SListDataType x);
void SlistPopBack(SListNode* phead);
void SlistPushFront(SListNode* phead, SListDataType x);
void SlistPopFront(SListNode* phead);
void SListPrint(SListNode* phead); //完成