|
发表于 2014-8-15 09:13:31
|
显示全部楼层
头插法:
- struct man *builder()
- {
- struct man *head,*p1;
- p1=(struct man*)malloc(sizeof(struct man));
-
- cout<<"输入首个号码 ";
- cin>>p1->id ;
- cout<<"输入首个数据 ";
- cin>>p1->data ;
-
- p1->next = NULL;
-
- head=p1;
- while(p1->id!=0)
- {
- num++;
- p1=(struct man*)malloc(sizeof(struct man)) ;
- cout<<"输入号码 ";
- cin>>p1->id;
- cout<<"输入数据 ";
- cin>>p1->data;
- p1->next = head;
- head = p1;
- }
-
- return head;
- }
复制代码
尾插法:
- struct man *builder()
- {
- struct man *head,*p1,*p2;
- p2=p1=(struct man*)malloc(sizeof(struct man));
-
- cout<<"输入首个号码 ";
- cin>>p1->id ;
- cout<<"输入首个数据 ";
- cin>>p1->data ;
-
- p1->next = NULL;
-
- head=p1;
- while(p1->id!=0)
- {
- num++;
- p1=(struct man*)malloc(sizeof(struct man)) ;
- cout<<"输入号码 ";
- cin>>p1->id;
- cout<<"输入数据 ";
- cin>>p1->data;
- p1->next = NULL;
-
- p2->next = p1;
- }
-
- return head;
- }
复制代码
这个是你的链表生成函数的两个实现方法,写链表最重要的是思路清晰。头插法和尾插法。
顾名思义,头插法head指针会不断指向新的节点。而为插法是head固定,不断的向尾部加入新的节点,类似贪吃蛇活动的原理。 |
|