Chinaunix
标题:
链表添结点问题
[打印本页]
作者:
一页空纸
时间:
2011-08-24 13:50
标题:
链表添结点问题
本帖最后由 一页空纸 于 2011-08-24 13:58 编辑
typedef struct node
{int data;
struct node *next;
}ListNode,*Linklist;
void Add_Node(Linklist L,int data) //插尾法
{Linklist p,q;
p=(Linklist)malloc(sizeof(ListNode));
p->data=data;
p->next=NULL;
if(L==NULL)
L=p;
else
{ q=L;
while(q->next!=NULL)
q=q->next;
q->next=p;}
}
int main(void)
{Linklist head=NULL;
Add_Node(head,data);
}
复制代码
这么写怎么样结点添不上去呢
作者:
bhuanghw
时间:
2011-08-24 16:23
在你的main里,传入的参数head=NULL,你要添加结点就意味着要修改指针head的值, 修改指针的值(也就是指针的指向)需要传入指针的指针。记住 C语言函数的形参都是使用实参的拷贝, 你这样做, 最后head 还是NULL
两种方法:
1. 加个表头,申请一个表头的内存传进去
2. 将head 随便初始化一个值,然后将&head传进去就行了
当然两个方法都要修改Add_Node函数的参数形式。
慢慢理解吧
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2