zoukankan      html  css  js  c++  java
  • 王道数据结构 (2) 单链表 尾插法

    第一步: s 是新创建的节点 s->next 表示 s  是最后一个 

     s->next = NULL;

    第二步: r  是原来的链表 r->next = s 表示 连接 s 

    r->next = s;

    第3步: r 指向新的表尾节点 

     r= s;

    代码:

    /*单链表(含头结点)*/
    #include<stdio.h>
    #include<stdlib.h>
     
    
    typedef int ElemType;
     
    typedef struct LNode{
        ElemType data;  //数据域
        struct LNode *next;  // 指针域
    }LNode,*LinkList;
     
    LinkList CreateFootList(ElemType a[], int n);  //头插法建立单链表
    
    void      OutputList(LinkList L); 
     
    void main(){
        LinkList L = NULL;
        ElemType a[] = { 1, 2, 3, 4, 5 };
        ElemType e;
        L = CreateFootList(a, 5);
      OutputList(L);
    }
     
    LinkList CreateFootList(ElemType a[], int n){   //头插法建立单链表
        int i;
        LinkList L = NULL, s = NULL, r= NULL;;
        L = (LNode*)malloc(sizeof(LNode));
        L->next = NULL;
      r = L;
        for (i = 0; i < n; i++){
            s = (LNode*)malloc(sizeof(LNode));  // 创建新节点 
            s->data = a[i];  
            s->next = NULL;
            r->next = s;
            r= s;
        }
        return L;
    }
     
    
     // 输出所有链表的思路:
    // 1.让头节点的next 指向下一个节点 
    // 2. 做一个循环 当超出时打断循环 循环内的时候 p 指向下一个 p 是 现在的节点 p=p-> next 节点会向下一个移动
    void OutputList(LinkList L){  //输出单链表全部元素
        LinkList p = L->next;
        while (p){
            printf("%d  ", p->data);
            p = p->next;
        }
        printf("
    ");
    }

    输出:

    越努力越幸运
  • 相关阅读:
    性能优化方法(Z)
    .NetChajian
    ServiceStack.Redis订阅发布服务的调用(Z)
    C#操作XML总结
    WPF DataGrid 性能加载大数据
    Mongodb 基础(Z)
    WPF 主题切换(Z)
    .Net全景视图
    C#动态创建和动态使用程序集、类、方法、字段等
    P3370 【模板】字符串哈希
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/13360451.html
Copyright © 2011-2022 走看看