注册 登录
考研论坛 返回首页

snowhorse712的个人空间 http://home.kaoyan.com/?6071530 [收藏] [复制] [分享] [RSS]

日志

删链表中的当前节点

已有 526 次阅读2012-4-11 11:12 | 2012, 编程

2012图像所复试编程题三,

已知一个指向单向链表的某个非头非尾节点的指针(node* pCurrent). pCurrent 指向的地址中仅保存2个指针, 一个是指向下一个节点的Next指针(pCurrent-> Next), 另一个是指向节点本身数据的Data指针(pCurrent-> Data). 编写一个C/C++函数, 实现以下功能:

(1)(2) 保留链表的原有顺序,在原链表中删除这个已知节点的下一个节点.

(2)(2) 保留链表的原有顺序,在原链表中删除这个已知节点.

思路:(1)传统的删节点.

(2)移花接木,释放原pCurrent节点中的原Data指针.

将pCurrent节点中保存的Data指针换为pCurrent的下一个节点中的Data指针,

将pCurrent节点的Next指针换为pCurrent的下一个节点中的Next指针,

然后删除pCurrent的下一个节点.(完成)

/********/

(1)

 node* pTemp = pCurrent->Next;

 pCurrent->Next = pTemp->Next;

 if(pTemp->Data != NULL)

 {

   delete(pTemp->Data);

   pTemp->Data=NULL;

  }

  if(pTemp != NULL)

  {

     delete(pTemp);

     pTemp=NULL;
  }

 

(2)

Data* pTemp0 = pCurrent->Data;(这里题目缺少Data指针的具体类型哈...)
node* pTemp1 = pCurrent->Next;
pCurrent->Next = pTemp1->Next;
pCurrent->Data = pTemp1->Data;
if(pTemp0 != NULL)

{

  delete pTemp0;

  pTemp0 = NULL;

}
if(pTemp1->Data != NULL)

{

  delete pTemp1->Data;

  pTemp1->Data = NULL;

}
if(pTemp1 != NULL)

{

  delete pTemp1;

  pTemp1 = NULL;

}
/***finished***/

 


路过

雷人

握手

鲜花

鸡蛋
收藏 分享邀请 分享到人人 举报

发表评论 评论 (1 个评论)

回复 snowhorse712 2012-4-11 11:23
2012图像所复试编程题3

关于我们|商务合作|小黑屋|手机版|联系我们|服务条款|隐私保护|帮学堂| 网站地图|院校地图|漏洞提交|考研帮

GMT+8, 2025-9-28 03:52 , Processed in 0.089449 second(s), Total 8, Slave 8(Usage:2.75M, Links:[2]1,1_1) queries , Redis On.

Powered by Discuz!

© 2001-2017 考研 Inc.

返回顶部
× 关闭