链表基础1(超简单)--创建一个长度为n的单链表

   日期:2020-10-31     浏览:257    评论:0    
核心提示:首先我们来了解一下什么是链表?通俗的来说链表就是一种链式存储结构,大家可以抽象理解一下把他想象成一个铁链,铁链不是由一个个铁环,环环相扣组成的嘛!那么每个铁环就可以叫做一个节点,如果我们再在每个铁环上面系上两个个小盒子,那么这两个小盒子一个叫做数据域就是存放每个节点数据的地方一个叫做指针域这个就是存放下一个节点(铁环)地址的地方。可能这样说还有点抽象,直接上图。这就是链表里面一个节点的样子,下面我们给多个节点串起来形成链表!我给每个节点的地址设为A,B,C。注意看第一个节点的指针域存放的是第二个节

首先我们来了解一下什么是链表?
通俗的来说链表就是一种链式存储结构,大家可以抽象理解一下把他想象成一个铁链,铁链不是由一个个铁环,环环相扣组成的嘛!那么每个铁环就可以叫做一个节点,如果我们再在每个铁环上面系上两个个小盒子,那么这两个小盒子一个叫做数据域就是存放每个节点数据的地方一个叫做指针域这个就是存放下一个节点铁环)地址的地方。可能这样说还有点抽象,直接上图。

这就是链表里面一个节点的样子,下面我们给多个节点串起来形成链表!

我给每个节点的地址设为A,B,C。注意看第一个节点的指针域存放的是第二个节点的地址B,第二个节点的指针域存放的是第三个节点的地址。这样就把每个节点就穿一起咯,这就是最简单的链表,单链表。
下面我们看一下代码实现
先看一个节点的表示:

typedef struct lianbiao
{ 
        int date;//数据域
        struct lianbiao *pnext;//地址域
}link;

然后我们要做的就是像铁环一样给串起来,上代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct lianbiao
{ 
        int date;
        struct lianbiao *pnext;
}link;
link *pnew;//新节点
link *phead;//头节点
link *ptemp;//临时节点
int count=1;
void creat(void);
void add(void);
int main()
{ 
    int n,i;
    printf("请输入所需要创建的链表长度,不可为0\n");
    scanf("%d", &n);
    creat();
    for(i=0;i<n-1;i++)
    { 
        add();
    }
  printf("链表创建完毕,输出链表所有数据\n");

  //printf("%d ", phead->date);
  for(ptemp=phead;ptemp!=NULL;ptemp=ptemp->pnext)
   { 
       printf("%d ", ptemp->date);
   }
   return 0;
}
void creat(void)//创建头节点
{ 
    phead=(link*)malloc(sizeof(link));
    phead->pnext=NULL;
    phead->date=0;
    //memset(link,0,sizeof(link));
}
void add(void)//添加节点
{ 
    pnew=(link*)malloc(sizeof(link));
    pnew->date=count;
    pnew->pnext=0;
    ptemp=phead;
    while(ptemp->pnext!=NULL)
    { 
        ptemp=ptemp->pnext;
    }
    ptemp->pnext=pnew;
    //pnew=NULL;
    count++;
}

运行结果:

如有问题可以在评论区或者私信我!感谢评阅,欢迎指正交流。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服