美文网首页
重拾算法Day09-模拟链表

重拾算法Day09-模拟链表

作者: 面试小集 | 来源:发表于2016-11-09 16:59 被阅读16次

模拟链表

使用两个数组来模拟链表。

data

data是用来存储数据的,新来的数据直接插入尾部。
right是用来表示data数组中数据的顺序的。
right[i]=n; 表示data中第i个元素的右边的元素的下标是n;

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int data[101], right[101];
    int n, t, len;
    scanf("%d", &n);
    for (int i=1; i<=n; i++) {
        scanf("%d", &data[i]);
    }
    len = n;
    
    for (int i=1; i<=n; i++) {
        if (i!=n) {
            right[i] = i+1;
        }else{
            right[i] = 0;
        }
    }
    
    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];
    }
    return 0;
}

相关文章

  • 重拾算法Day09-模拟链表

    模拟链表 使用两个数组来模拟链表。 data是用来存储数据的,新来的数据直接插入尾部。right是用来表示data...

  • 第6章 线性数据结构

    1、报数 算法分析 模拟将链表看出循环数组,若该点叫到m则移出 时间复杂度 Java 代码 2、敲7 算法分析 用...

  • 静态链表及C#实现

    静态链表 静态链表是用数组模拟动态链表。 静态链表结构描述 首先,静态链表使用数组来模拟动态链表。数组存放一个节点...

  • 数据结构 - 单向链表及相关算法

    单向链表 链表常见算法 链表反转

  • 重拾算法Day08-链表

    链表 本节主要讲链表,包括链表的构造,链表的插入等操作。

  • 19 删除链表的倒数第 N 个结点

    题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 自行解答: 算法思路: 其实算法是链表...

  • 模拟链表

    public class MyLinkList {@NonNullprivate Node mNode; }

  • Aha! Algorithms - Linked List Si

    《啊哈!算法》第 2 章第 5 节,模拟链表的 Swift 实现。 问题 为数组添加一个数,仍然得到按数值大小的排...

  • 头条-手撕代码

    [toc] 图算法 以及最短路径算法 树算法 手写LRU 排序算法 链表算法

  • 单链表

    单链表一些相关的算法集锦,单链表的算法可以提高逻辑能力。 反转链表 最基本的链表的题目,很简单的迭代操作,需要注意...

网友评论

      本文标题:重拾算法Day09-模拟链表

      本文链接:https://www.haomeiwen.com/subject/npqtpttx.html