zoukankan      html  css  js  c++  java
  • c语言链表——模拟链表

    如果大家看不懂指针的链表,也可以用模拟链表的数组代替指针。
    还是前一个题目

    #include <stdio.h>
    
    int main()
    {
        int data[101], right[101];
        int i, n, t, len;
        //读入已有的数
        scanf("%d", &n);
        for (i = 1; i <= n; i++)
            scanf("%d", &data[i]);
        len = n;
        //初始化数组right
        for (i = 1; i <= n; i++)
        {
            if (i != n)
                right[i] = i + 1;
            else
                right[i] = 0;
        }
        //直接在数组data的末尾增加一个数
        len++;
        scanf("%d", &data[len]);
    
        //直接从链表头部开始遍历
        t = 1;
        while (t != 0)
        {
            if (data[right[t]] > data[len])//如果当前节点下一个节点的值大于待插入数字,将数字插入到中间
            {
                right[len] = right[t];
                //新插入数的下一个节点标号等于当前节点的下一个节点编号
                right[t] = len;
                //当前节点的下一个节点编号就是新插入数的编号
                break;//插入完成跳出循环
            }
            t = right[t];
        }
    
        //输出链表中的所有数
        t = 1;
        while (t != 0)
        {
            printf("%d ", data[t]);
            t = right[t];
        }
        getchar();
        getchar();
        return 0;
    }
    
  • 相关阅读:
    2017.4.6下午
    2017.4.6上午
    2017.3.31下午
    2017.4.5下午
    2017.4.5上午
    2017.4.1上午
    2017.3.31上午
    2017.3.28下午
    2017.3.28上午
    3.28上午
  • 原文地址:https://www.cnblogs.com/coding365/p/12593029.html
Copyright © 2011-2022 走看看