单链表的插入
本帖最后由 shuofxz 于 2016-3-28 17:14 编辑在下面链表插入函数中,第一个传入的参数,为什么是LinkList *类型的?
在定义中已经写了typedef struct Node *LinkList;那这时的L不就是Node ** 了吗?为什么?
typedef int Status
typedef struct Node
{
ElemType data;
struct Node *next;
};
typedef struct Node *LinkList;
//链表插入
Status ListInsert(LinkList *L, int i, ElemType e)
{
LinkList p = *L;
LinkList q;
int flag = 1;
while( p && flag<i )
{
p = p->next;
flag++;
}
if( !p || flag>i)
{
return ERROR;
}
q = (LinkList)malloc(sizeof(NODE));
q->data = e;
q->next = p->next;
p->next = q;
return OK;
} 二级指针在 这函数里 没作用 还不如定义一级指针如果在销毁或者申请函数里就有用可以通过子函数去修改调用函数传入的参数
页:
[1]