首页 > 代码库 > 链表(一)

链表(一)

1.建立简单的单向链表

 

#include<stdio.h>
#include<stdlib.h>
#define LEN sizeod(struct chain)

struct chain{
     int data;
     struct chain *next;        
}; //分号(;)号千万不要忘记!

int main()
{
     int i=1,j,data;
     struct chain *head=NULL;  //建立头指针并指向空
     struct chain *p1,*p2;
     
     whlie(scanf("%d",&data)&&data!=0)  //输入0时停止创建链表
     {
          if(head==NULL)
          {
                p1=p2=(struct chain*)malloc(LEN);
                p1->data=http://www.mamicode.com/data;
                head=p1;  //头指针指向链表
          }
          else 
          {    
                p1->data=http://www.mamicode.com/data;
                p2->next=p1;  //使用p2串起链表
          }
          p2=p1;
          p1=(struct chain*)malloc(LEN);   
          i++; //计算链表中数据个数
     }
     p1=head; //重新指向链表头
     //输出链表内容
     for(j=1;j<i;j++)
     {
          printf("%d ",p1->data);
          p1=p1->next;
     }
     return 0;
}

 

 

2.逆序输出

 

int i,times;

scanf("%d",times); //获取循环次数

for(i=0;i<times;i++)
{
     p1=(struct chain*)malloc(LEN);
     scanf("%d",&p->data);
     //指向头,创建逆序
     p1->next=head;
     head=p1;
}

 

链表(一)