• C语言实现头插法和尾插法动态单链表(线性表)


    学了n年的C语言,你知道怎么用C实现一个动态的单链表吗,一起mark一下吧,自我激励ing。

    首先是头插法:

    //
    // Created by yuyu on 2020/10/15.
    //
    
    #include "stdio.h"
    #include "stdlib.h"
    
    //头插法实现动态单链表
    
    typedef struct node{
        int element;
        struct node *next;
    }node,*linklist;
    
    linklist insertFromHead(int num){
        linklist head=(linklist)malloc(sizeof(node));
        linklist temp=head;
        head->next=NULL;
        for(int i=0;i<num;i++){
            linklist n=(linklist)malloc(sizeof(node));
            printf("please input the %dth number",i);
            scanf("%d",&(n->element));
            temp->next=n;
            temp=temp->next;
        }
        return head;
    }
    
    void display(linklist head){
        linklist temp=head;
        while(temp->next){
            temp=temp->next;
            printf("%d
    ",temp->element);
        }
    }
    
    int main(){
        linklist head=insertFromHead(10);
        display(head);
        return 0;
    }

    接下来是尾插法:

    //
    // Created by yuyu on 2020/10/15.
    //使用尾插法实现单链表
    
    #include "stdio.h"
    #include "stdlib.h"
    
    typedef struct Point{
        int element;
        struct Point *next;
    }node,*Linklist;
    
    Linklist initLinklist(int num){
        Linklist head=(Linklist)malloc(sizeof(node));
        head->next=NULL;
        for(int i=num;i>0;--i){
            Linklist n=(Linklist)malloc(sizeof(node));
            printf("please input the %d number",i);
            scanf("%d",&(n->element));
            n->next=head->next;
            head->next=n;
        }
        return head;
    }
    
    void display(Linklist head){
        Linklist temp=head;
        while(temp->next){
            temp=temp->next;
            printf("%d
    ",temp->element);
        }
    }
    
    int main(){
        Linklist head=initLinklist(10);
        display(head);
        return 0;
    }

    这是数据结构中最简单最基本的结构,动态的单链表,我自己通过找工作发现编码习惯和能力真的很重要,养成好的编码习惯包括命名习惯和注释习惯以及缩进习惯,不仅能让你的代码可读性更好,而且可以让你的代码看起来赏心悦目,努力实现自己的梦想从一点一滴开始吧。上次宽度乘法器的实验已经做出来了,最近太忙,代码没时间整理,等有时间我会放到我的GitHub上面,嘻嘻

  • 相关阅读:
    需求获取常见的方法是进行客户访谈,结合你的实践谈谈会遇到什么问题,你是怎么解决的?
    软件工程导论 习题五
    软件工程导论 习题四
    软件工程导论 习题三
    软件工程导论 习题二(1.2.3.5)
    软件工程导论 习题一
    面向对象分析方法和面向过程分析方法的区别
    几大开发模型区别与联系
    项目总结
    关于需求
  • 原文地址:https://www.cnblogs.com/daremosiranaihana/p/13819082.html
Copyright © 2020-2023  润新知