鱼C论坛

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

[技术交流] 单链表初始化函数和头插函数的参数问题!

[复制链接]
发表于 2015-3-24 20:56:15 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Pathfinder 于 2015-3-24 20:58 编辑

折腾了一下午,实在筋疲力竭了,百度了n遍未能找到满意的答案,求大牛指点一二!我的问题是:
1.应该怎么去理解这2函数相同的那个参数:Node **pNode?不应该是Node *pNode吗?

定义的结构体如下:
  1. typedef struct Node{    /* 定义单链表结点类型 */
  2.     elemType element;
  3.     Node *next;
  4. }Node;
复制代码

初始化函数:
  1. void initList(Node **pNode)
  2. {
  3.     *pNode = NULL;
  4.     printf("initList函数执行,初始化成功\n");
  5. }
复制代码
头插函数:
  1. int insertHeadList(Node **pNode,elemType insertElem)
  2. {
  3.     Node *pInsert;
  4.     pInsert = (Node *)malloc(sizeof(Node));
  5.     memset(pInsert,0,sizeof(Node));
  6.     pInsert->element = insertElem;
  7.     pInsert->next = *pNode;
  8.     *pNode = pInsert;
  9.     printf("insertHeadList函数执行,向表头插入元素成功\n");
  10.     return 1;
  11. }
复制代码

2.还有的实现代码是用下面的形式,就更不懂了:
LinkList 应该是等价于 struct LNode * , 对吧?
那么,LinkList &L 又是什么意思?等价于 struct LNode * &?这是C++的引用啊!C也有引用了吗?
此外,还有加 * 的,例如:
  1. void InitList(LinkList *head)
复制代码
这里的 LinkList * 又应该怎么去理解呢?难道等价于 struct LNode **?
为什么要多加一个 * 呢?


定义的结构体:
  1. typedef struct LNode
  2. {
  3.         ElemType data;
  4.         struct LNode *next;
  5. }LNode,*LinkList;
复制代码
创建链表的函数:
  1. int CreateList_L(LinkList &L, int n)
  2. {
  3.         LinkList p;
  4.         L = (LinkList)malloc(sizeof(LNode));
  5.         L->next = NULL;
  6.         for (int i = n; i > 0; --i)
  7.         {
  8.                 p = (LinkList)malloc(sizeof(LNode));
  9.                 scanf("%d", &p->data);
  10.                 p->next = L->next;
  11.                 L->next = p;
  12.         }
  13.         return OK;
  14. }
复制代码

另:怎么在帖子里插入代码?怎么感觉我的那么难看呢?




评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
拈花小仙 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-5 11:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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