|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Pathfinder 于 2015-3-24 20:58 编辑
折腾了一下午,实在筋疲力竭了,百度了n遍未能找到满意的答案,求大牛指点一二!我的问题是:
1.应该怎么去理解这2函数相同的那个参数:Node **pNode?不应该是Node *pNode吗?
定义的结构体如下:
- typedef struct Node{ /* 定义单链表结点类型 */
- elemType element;
- Node *next;
- }Node;
复制代码
初始化函数:
- void initList(Node **pNode)
- {
- *pNode = NULL;
- printf("initList函数执行,初始化成功\n");
- }
复制代码 头插函数:
- int insertHeadList(Node **pNode,elemType insertElem)
- {
- Node *pInsert;
- pInsert = (Node *)malloc(sizeof(Node));
- memset(pInsert,0,sizeof(Node));
- pInsert->element = insertElem;
- pInsert->next = *pNode;
- *pNode = pInsert;
- printf("insertHeadList函数执行,向表头插入元素成功\n");
- return 1;
- }
复制代码
2.还有的实现代码是用下面的形式,就更不懂了:
LinkList 应该是等价于 struct LNode * , 对吧?
那么,LinkList &L 又是什么意思?等价于 struct LNode * &?这是C++的引用啊!C也有引用了吗?
此外,还有加 * 的,例如:
- void InitList(LinkList *head)
复制代码 这里的 LinkList * 又应该怎么去理解呢?难道等价于 struct LNode **?
为什么要多加一个 * 呢?
定义的结构体:
- typedef struct LNode
- {
- ElemType data;
- struct LNode *next;
- }LNode,*LinkList;
复制代码 创建链表的函数:
- int CreateList_L(LinkList &L, int n)
- {
- LinkList p;
- L = (LinkList)malloc(sizeof(LNode));
- L->next = NULL;
- for (int i = n; i > 0; --i)
- {
- p = (LinkList)malloc(sizeof(LNode));
- scanf("%d", &p->data);
- p->next = L->next;
- L->next = p;
- }
- return OK;
- }
复制代码
另:怎么在帖子里插入代码?怎么感觉我的那么难看呢?
|
评分
-
查看全部评分
|