你好,你发布的数据结构pos机 问题,那个代码需要加那些函数才能运行出来,我改了好多次,一直没能运行出来
void SListInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x)
{
assert(pphead);
assert(pos);
if (*pphead == pos)
{
//则头插
SListPushFront(pphead, x);
}
else
{
SLTNode* newnode = BuySListNode(x);
//找到pos前一个结点
SLTNode* pre = *pphead;
while (pre->next != pos)
{
pre = pre->next;
}
newnode->next = pos;
pre->next = newnode;
}
}
如果链表中只有一个元素时,这时在pos前面插入结点,就相当于头插,我们可以直接复用头插函数,多个元素时,我们需要先找到pos的前一个结点,然后才能够进行插入操作。
测试文件中进行测试发现没什么问题:
下面我们来看在pos位置删除一个结点