链表学习基础篇(c语言)

3 篇文章 0 订阅
1 篇文章 0 订阅

*链表是数据结构中十分重要的一种数据结构!学习过数组的人可能会发现数组这种数据结构在数据插入以及删除上十分的麻烦,而链表这种数据结构的设计则解决了这种问题,但是这种数据结构也有自己很致命的弱点—-在实现查找这种操作时则会面临很大的麻烦!
链表的操作思想类似图灵机的计算,操作头沿着线性的数据进行操作)。*
接下来看一段代码吧!看看一个动态长度的链表是如何创建的。

#include <stdio.h>  
#include <stdlib.h>  
typedef int T;  
struct  node                    
{  
    T data;  
    struct node* next;  
};  
typedef struct node Node;  
#define SIZE sizeof(Node)    
//创建一个节点  
Node* creat_node(T d)  
{  
    Node* p=(node *)malloc(SIZE);  
    p->data=d;  
    p->next=NULL;  
    return p;  
}  

//创建链表   
void creat_list(Node** h)  
{  
    T d;  
    Node* p=NULL;  
    Node* pn=NULL;  
    printf("请输入一个数据:\n");  
        scanf("%d",&d);  
        pn=creat_node(d);  
        *h=pn;//节点类型的指针。  
        p=*h;  
    while(1){  
        printf("请输入一个数据:\n");  
        scanf("%d",&d);  
        if(d==0)  
            break;  
        pn=creat_node(d);  
        p->next=pn;  
        p=p->next;//p指向最后一个节点。  
    }  
}  

//遍历链表  
void travel(Node* h)  
{  
    printf("list:");  
    while(h){  
        printf("%5d",h->data);  
        h=h->next;  
    }  
    printf("\n");  
}  

void main()  
{  
    Node* head = NULL;  

    creat_list(&head);//创建链表 
    travel(head); //输出链表
}

如果大家有什么问题可以留言!毕竟这段代码本人觉得并非很难理解!在接下来的博客中我将介绍一下对链表的基本操作,以及基于链表的排序(插入排序,选择排序)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值