单链表节点删除问题

时光诺下的雨丶 2017-10-05 08:46:54
[size=24px]
单链表中,
删除了其中一个节点。

节点删除函数里面没有任何输出语句,

删除成功后怎么会有信息输出?
是我代码有问题吗?

有老师,大佬能帮我看看,解释一下吗?

谢谢您,谢谢了。
没有其他方式方法,
百度了,没查到相关的问题。
...全文
424 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 qq_38204686 的回复:
应该是你代码有问题 建议调试 还有就是 能把你代码贴上来么
谢谢您,谢谢你
  • 打赏
  • 举报
回复
/////////////////////////删除节点函数
struct students *Delete(struct students *p)
{
	struct students *pNewHead = p;
	struct students *pSecLink = pNewHead;		//读取两次此单链表,并让 pNewLink 链的节点读取比 ph 链晚一个节点。
	struct students *ph = p;			//原始链表,读取数据。
	printf("请输入要删除学生的学号:");
	int iNum = 0;
	scanf("%d", &iNum);
	int iCount = 0;		//用来错开两条链表的空间,以方便节点删除后的连接。
	int iJudgeLinkPlace = 0;		//标记删除的节点是 链头还是其他节点,链头用1标记,链身和链尾都用2表示
	while (ph != NULL)
	{
		if (iNum == p->iNum)
		{
			iJudgeLinkPlace = 1;
			pNewHead = p->pNext;

			break;
		}
		else if (iNum == ph->iNum)
		{
			iJudgeLinkPlace = 2;
			pSecLink->pNext = ph->pNext;

			break;
		}
		else
		{
			iCount++;
			ph = ph->pNext;
			if (iCount >= 2)
			{
				pSecLink = pSecLink->pNext;
			}
		}
	}
	switch (iJudgeLinkPlace)
	{
	case 1:
	{
			  struct students *pNewL = pNewHead;
			  do{
				  pNewL->iNum--;
				  pNewL = pNewL->pNext;
			  } while (pNewL != NULL);
			  break;
	}
	case 2:
	{
			  struct students *pNewLMid = pSecLink->pNext;
			  if (pNewLMid != NULL)
			  do{
				  pNewLMid->iNum--;
				  pNewLMid = pNewLMid->pNext;
			  } while (pNewLMid != NULL);
			  break;
	}
	}

	return(pNewHead);
}
这是节点删除函数,完整的有点长
das白 2017-10-05
  • 打赏
  • 举报
回复
应该是你代码有问题 建议调试 还有就是 能把你代码贴上来么
  • 打赏
  • 举报
回复
有大佬吗?兄弟,姐妹啊,大哥大姐啊。 叔叔阿姨啊,怎么回事?

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧