前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构:链表的头插法和尾插法

数据结构:链表的头插法和尾插法

作者头像
戈贝尔光和热
发布2018-12-27 15:07:52
2.1K0
发布2018-12-27 15:07:52
举报
文章被收录于专栏:HUBU生信HUBU生信

没啥好多说的,直接看代码。(C)

数据结构头插:

在头节点的后面进行插入操作,后一个插入进来的值,在前一个插入进来的值与头节点之间。

代码如下:

代码语言:javascript
复制
#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"
typedef  struct  Lnode
{
    int  data;
    struct Lnode  *next;
}Lnode,*LinkList;
void  Create_LinkTable(LinkList  &L)
{
    L = (LinkList)malloc(sizeof(Lnode));
    L->data = 0;
    L->next = NULL;
    printf("数字:");
    int  data;
    scanf("%d",&data);
    while (1)
    {
        if (data == 32767)  break;
        else
        {
            LinkList  p = (LinkList)malloc(sizeof(Lnode));
            p->data = data;
            p->next = L->next;
            L->next = p;//头插法
            scanf("%d",&data);
        }
    }
}
void  Travel(LinkList  L)
{
    LinkList p = L;
    while (p != NULL)
    {
        printf("%d", p->data);
        p = p->next;
    }
}
int main()
{
    LinkList  L;
    Create_LinkTable(L);
    Travel(L);
    return 0;
}

从结果可以看出,输入的数字1234,遍历时变成了4321。

尾插法:

设法找到插入结点的上一个结点,总而言之,尾插法就是要使后面插入的结点在前一个插入结点和NULL值之间。

代码如下:

代码语言:javascript
复制
#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"
typedef  struct  Lnode
{
    int  data;
    struct Lnode  *next;
}Lnode,*LinkList;
void  Create_LinkTable(LinkList  &L)
{
    L = (LinkList)malloc(sizeof(Lnode));
    L->data = 0;
    L->next = NULL;
    printf("数字:");
    int  data;
    scanf("%d",&data);
    LinkList  fp = L;
    while (1)
    {
        if (data == 32767)  break;
        else
        {
            LinkList  p = (LinkList)malloc(sizeof(Lnode));
            p->data = data;
            fp->next = p;
            p->next = NULL;
            fp = p;//尾插法
            scanf("%d",&data);
        }
    }
}
void  Travel(LinkList  L)
{
    LinkList p = L;
    while (p != NULL)
    {
        printf("%d", p->data);
        p = p->next;
    }
}
int main()
{
    LinkList  L;
    Create_LinkTable(L);
    Travel(L);
    return 0;
}

从结果可以看出,输入为1234时,遍历的仍然是1234。

全文结束,欢迎在评论区讨论~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档