无法运行程序,请问还需要添加什么

你好,你发布的数据结构pos机 问题,那个代码需要加那些函数才能运行出来,我改了好多次,一直没能运行出来

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/722027
  • 这篇博客你也可以参考下:数据结构之头结点链表的三种插入方式(头插法,尾插法,在pos处插入)
  • 除此之外, 这篇博客: 数据结构之单链表的增删查改等操作画图详解中的 在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位置前插入结点操作图解

    image-20210804181759012

    测试文件中进行测试发现没什么问题:

    image-20210804211922019

    下面我们来看在pos位置删除一个结点