C语言创建线性链表

#include<stdio.h>

//构造结点
typedef struct lnode{
    int data;
    struct lnode *next;
} lnode;
//创建链表
lnode* creat()
{
    lnode*p,*s,*head;
    head=new lnode;
    head->next=NULL;
    p=head;
    printf("请输入数值:\n");
    while(1){
      s=new lnode;//创建新节点
      scanf("%d",&s->data);//输入结点数据
      if(s->data<0) break; //输入负数 则结束
      p->next=s;
      p=s;
    }

    p->next=NULL;//最后一个节点链域指向为空
    return head;

}
//输出链表
void put(lnode*l)
{

   lnode*p;
   p=l->next;//L为表头结点,P为第一个有效结点

   while(p!=NULL){
     printf("%d\n",p->data);
     p=p->next;
   }

}

int main(void)
{
lnode*head;//表头
head=creat();//创建列表
put(head);//输出列表
return 0;
}

C语言创建线性链表_第1张图片

你可能感兴趣的:(C/C++)