|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- //在pHead所指向链表的第pos个节点的前面插入一个新的结点,该节点的值是val, 并且pos的值是从1开始
- bool insert_list(PNODE pHead, int pos, int val)
- {
- int i = 0;
- PNODE p = pHead;
- while (NULL!=p && i<pos-1)
- {
- p = p->pNext;
- ++i;
- }
- if (i>pos-1 || NULL==p)
- return false;
- //如果程序能执行到这一行说明p已经指向了第pos-1个结点,但第pos-1个节点是否存在无所谓
- //分配新的结点
- PNODE pNew = (PNODE)malloc(sizeof(NODE));
- if (NULL == pNew)
- {
- printf("动态分配内存失败!\n");
- exit(-1);
- }
- pNew->data = val;
-
- //将新的结点存入p节点的后面
- PNODE q = p->pNext;
- p->pNext = pNew;
- pNew->pNext = q;
- return true;
- }
复制代码 这个是数据结构中链表功能的实现中的一个函数,函数我看得懂- while (NULL!=p && i<pos-1)
- {
- p = p->pNext;
- ++i;
- }
- if (i>pos-1 || NULL==p)
- return false;
复制代码 ,但是我不懂得这个思路是如何来的??高手请给点建议! |
|