为什么要用二级指针
时间:2011-12-26
来源:互联网
两个单链表的类在实现插入节点操作时有所不同
C/C++ code
第二个
C/C++ code
请问第二个链表的insert里面为什么要用node **p 二级指针 用一级指针行吗 为什么?
二级指针怎么理解好一点
C/C++ code
class IntSetList2 { //using List private: int n; struct node { int val; node *next; node(int i, node *p) { val = i; next = p; } }; node *head, *sentinel; public: IntSetList2(int maxelements, int maxval) { sentinel = head = new node(maxval, 0); n = 0; } int size() { return n; } void insert(int t) // 消除递归1 { node *p; if (head->val == t) return; if (head->val > t) { head = new node(t, head); n++; return; } for (p = head; p->next->val < t; p = p->next) ; if (p->next->val == t) return; p->next = new node(t, p->next); n++; } void report(int *v) { int j = 0; for (node *p = head; p != sentinel; p = p->next) v[j++] = p->val; } };
第二个
C/C++ code
class IntSetList3 { //using List private: int n; struct node { int val; node *next; node(int i, node *p) { val = i; next = p; } }; node *head, *sentinel; public: IntSetList3(int maxelements, int maxval) { sentinel = head = new node(maxval, 0); n = 0; } int size() { return n; } void insert(int t)// 消除递归2 { node **p; for (p = &head; (*p)->val < t; p = &((*p)->next)) ; if ((*p)->val == t) return; *p = new node(t, *p); n++; } void report(int *v) { int j = 0; for (node *p = head; p != sentinel; p = p->next) v[j++] = p->val; } };
请问第二个链表的insert里面为什么要用node **p 二级指针 用一级指针行吗 为什么?
二级指针怎么理解好一点
作者: qfangmiao 发布时间: 2011-12-26
这边没有必要用 指针的指针的吧
一般在函数传递时,需要改变指针的值的时候,采用指针的指针。
一般在函数传递时,需要改变指针的值的时候,采用指针的指针。
作者: relaxisland 发布时间: 2011-12-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28