重拾算法Day09-模拟链表

模拟链表

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

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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容