C语言 C语言中的链表问题 在创建链表的时候,定义创建函数的时候,形参的选取问题

我这里的想问的是,形参表头到底是用structnote*head还是用structnote**head我看大部分的书和网上页码上都用的是structnote*head我用... 我这里的想问的是,形参表头到底是用struct note *head
还是用struct note **head
我看大部分的书和网上页码上都用的是struct note *head
我用*head尝试写过程序,验证表头地址失败
改用**head能力有限,
麻烦高手指点..........
希望哪位高手写一个能执行的程序
要有主程序int main(void)
{
}

最好两种都写下,能输出结果的,就是输入数据,能输出结果的
还有就是
还有就是插入和删除结点的时候是不是必须要用二级指针?(对表头有可能修改)

在这里希望能给我写出一个新建链表的程序(两个吧,形参一级和二级)
新建一个链表

非常的感谢,有分加
展开
 我来答
老冯文库
2012-03-11 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

C程序示例:

#include "stdio.h"

struct node

{

    int data;

    struct node *next;

};

/* 构造链表,返回头结点指针 */

struct node *CreateLinkList()

{

    struct node *head, *p, *q;

    int value;

    head = (struct node*)malloc(sizeof(struct node));

    head->next = NULL;

    q = head;

    while(1)

    {

        printf("value (end by -1) : ");

        scanf("%d", &value);

        if(value == -1)

            break;

        p = (struct node*)malloc(sizeof(struct node));

        p->data = value;

        p->next = NULL;

        q->next = p;

        q = p;

    }

    return head;

}

/* 遍历链表 */

void ListAllNodes(struct node *head)

{

    struct node *p;

    for(p=head->next; p!=NULL; p=p->next)

        printf("%d\n", p->data);

}

void main()

{

    struct node *head;

   

    head = CreateLinkList();

    ListAllNodes(head);

}

运行测试:

kaixingui2012
2012-03-11 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6440万
展开全部
你要想通过形参带回来head的数值(表面上是这样),就要用struct note **head

否则,你需要定义函数的返回类型为struct note * , 用return head;来返回,并在主函数中进行接收。

以下提供两种方法:

struct node {
int data;
struct node *next ;
}

struct node * creat1( void )
{
struct node *head ;

head=malloc( sizeof(struct node) );
...
return head ;
}

void creat2( struct node **head )
{
struct node *p ;
p=malloc( sizeof(struct node) );
*head=p;
....
}

main()
{
struct node *head ;
//方法1
head=creat1() ;
//方法2
creat2( &head );
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松怀山f
2012-03-11 · TA获得超过395个赞
知道答主
回答量:54
采纳率:0%
帮助的人:30.4万
展开全部
贴下代码吧,看看你是怎么写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式