

目录
本次的单链表内容紧接着上一篇博客,实现在一个位置后面插入和删除以及查找的操作。
typedef int SLTDataType;
//利用typdef类型重定义来定义链表的数据类型以及结构体的简写。
//便于以后链表数据类型的更换以及结构体类型声明。
typedef struct SListNode{
SLTDataType data;
struct SListNode* next;
}SLTNode;
SLTNode* BuyNode(SLTDataType x)
{
SLTNode* newnode = (SLTNode*)malloc(sizeof(SLTNode));
if(newnode == NULL)
{
printf("malloc fail;\n");
exit(-1);
}
newnode -> data = x;
newnode -> next = NULL;
return newnode;
}
链表的插入:
void SLTNodeInsert(SLTNode* pos, SLTDataType x)
{
//首先创建一个新的结点
SLTNode* newnode = BuyNode(x);
//在给的位置后一个位置进行插入操作
newnode -> next = pos -> next;
pos -> next = newnode;
}
链表的删除:
void SLTNodeErase(SLTNode* pos)
{
//删除给入位置的后一个元素
SLTNode* p = pos -> next;
pos -> next = p -> next;
free(p);
}
链表元素的查找:
SLTNode* SLTNodeFind(SLTNode* phead, SLTDataType x)
{
while(phead)
{
if(phead -> val == x)
return phead;
phead = phead -> next;
}
return NULL;
}
本文介绍了如何实现单链表中节点的插入、删除和查找操作。定义了SLTNode结构体表示链表节点,并提供了BuyNode函数用于创建新节点。SLTNodeInsert函数在指定位置后插入节点,SLTNodeErase函数删除给定位置的后一个节点,而SLTNodeFind函数则用于查找链表中的特定元素。
762

被折叠的 条评论
为什么被折叠?



