美文网首页
重拾算法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-模拟链表

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