如何创建有N个节点的单链表

最好能提供算法思想和算法设计!谢谢!!!... 最好能提供算法思想和算法设计!
谢谢!!!
展开
 我来答
百度网友96ffcf7
2015-08-01 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
#include <stdio.h>  
#include <stdlib.h>  
  
//类型定义typedef在使用的时候如果直接按下面的方式定义,是错误的:  
/*typedef struct Node 

   int data; 
   Node * next; 
}; 
*/  
//应该定义为:  
typedef struct node  
{  
   int data;  
   struct node * next;  
}Node;  
  
/*宏定义的后面一定“不能”有分号“;”*/  
#define LEN sizeof(Node)  
#define NULL 0  
main()  
{  
  Node* create(int n);  
  Node* p;  
  p = create(3);  
  while(p != NULL)  
  {  
    printf("%d, ",p->data);  
    p = p->next;  
  }  
  printf("\n");  
}  
Node* create(int n)  
{  
  int i;  
  //定义指针变量时,下面的定义方式是错误的:  
  //node* head, p1, p2;  
  Node *head, *p1, *p2;  
  //head = p2 = NULL;  
  for(i=0;i<n;i++)  
  {  
     p1 = (Node*)malloc(LEN);  
     printf("Please input the data of your node: \n");  
     scanf("%d",&p1->data);  
     if(i==0)  
     p2 = head = p1;  
     else  
     {  
       p2->next = p1;  
     }  
     p1->next = NULL;  
     p2 = p1;  
  }  
  return head;  
}
匿名用户
2013-10-30
展开全部
开辟一个空间,赋上一个值,连到前面节点,就形成链表喽
code如下:
#include "stdio.h"
#include"malloc.h"

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

link *creat(int n) //创建链表
{
link *head,*p,*s;
int i;
if(n<1) return NULL;
p=head=(link *)malloc(sizeof(link));
for(i=1;i<=n;i++)
{
s=(link *)malloc(sizeof(link));
scanf("%d",&s->data);
p->next=s;
p=s;
}
p->next=NULL;
return head;
}

void display(link *head)//显示链表内容
{
link *p;
p=head->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\
");
}

void main()
{
link *head;
head=creat(5);//创建一个5个节点的链表
printf("链表:\
");
display(head);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-30
展开全部
我不相信你这样能学好C语言,如果是去当程序员,只能成为码农。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式