鱼C论坛

 找回密码
 立即注册
查看: 4325|回复: 0

C语言中的一个思路问题

[复制链接]
发表于 2012-10-26 22:25:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. //在pHead所指向链表的第pos个节点的前面插入一个新的结点,该节点的值是val, 并且pos的值是从1开始
  2. bool insert_list(PNODE pHead, int pos, int val)
  3. {
  4.         int i = 0;
  5.         PNODE p = pHead;

  6.         while (NULL!=p && i<pos-1)
  7.         {
  8.                 p = p->pNext;
  9.                 ++i;
  10.         }

  11.         if (i>pos-1 || NULL==p)
  12.                 return false;

  13.         //如果程序能执行到这一行说明p已经指向了第pos-1个结点,但第pos-1个节点是否存在无所谓
  14.         //分配新的结点
  15.         PNODE pNew = (PNODE)malloc(sizeof(NODE));
  16.         if (NULL == pNew)
  17.         {
  18.                 printf("动态分配内存失败!\n");
  19.                 exit(-1);
  20.         }
  21.         pNew->data = val;
  22.        
  23.         //将新的结点存入p节点的后面
  24.         PNODE q = p->pNext;
  25.         p->pNext = pNew;
  26.         pNew->pNext = q;

  27.         return true;
  28. }
复制代码
这个是数据结构中链表功能的实现中的一个函数,函数我看得懂
  1. while (NULL!=p && i<pos-1)
  2.         {
  3.                 p = p->pNext;
  4.                 ++i;
  5.         }

  6.         if (i>pos-1 || NULL==p)
  7.                 return false;
复制代码
,但是我不懂得这个思路是如何来的??高手请给点建议!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-10 12:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表