Skip to content

14264: 【原4264】list

题目

题目描述

author: ljx 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/4264

LIST

写一个单链表。 你需要完成以下内容:

0 返回链表长度

1 插入一个数

2 输出第x个数,如果x超出链表长度,请输出-1.注意,这里的i为0-base.

3 删除表尾的数,如果表为空就不做任何操作

4 输出整个list,如果表为空请输出-1

为防止内存泄漏,你需要在程序最后删除整个列表,此项,我们会通过检查你的代码来确定你是否完成。

要求如下: 必须使用指针和结构体

在单链表中,每个结点有一个数据元素和一个后继指针组成,后继指针指向存储该元素直接后继的结点。单链表只保存直接后继的关系

存储一个单链表需要一个指向头结点的指针。

可以使用单独的变量记录链表长度。请严格按照以上要求完成此题。我们会检查你提交的代码。虽然有其他的实现方式,但如果你未按照要求写代码,我们不会给你对应的分数。

同时,此题需要你注意提交代码的代码风格!!!极为糟糕的代码风格(例如改变语法的某些宏定义)会酌情扣分!!!

INPUT

第一行一个$n$表示操作数。 之后$n$行每行第一个数$op$代表操作编号,分别对应前文中的编号。 如果$op$为$1$,其后会输入一个整数$x$,表示插入的数值为$x$ 如果$op$为$2$,其后会输入一个整数$x$,表示你需要输出链表中第$x$值,输出要求见上。

OUTPUT

对于操作1,3,你不用输出任何东西。 对于操作0,输出一个整数,表示链表长度。 对于操作2,输出一个整数,表示第x个数。 对于操作4,按链表顺序输出一行整数。

SAMPLE INPUT

12
0
1 1
1 2
4
2 1
2 2
3
3
3
4
1 1
0

SAMPLE OUTPUT

0
1 2
2
-1
-1
1

HINT

$n \leq 1000$, 保证链表中所有数字为int范围内正整数。

给定的sample.cpp如下:

#include <iostream>
#include <cstdio>
using namespace std;

namespace LIST
{

    //TODO

    void Pre()
    {
        //TODO
    }
    int Get_length()
    {
        //TODO
    }

    void Push(int x)
    {
        //TODO
    }

    int Query(int x)
    {
        //TODO
    }

    void Pop()
    {
        //TODO
    }

    void Print()
    {
        //TODO    
    }
    void Clear()
    {
        //TODO 
    }

}
int n;
int main()
{
    cin >> n;
    int op, x, ans;
    LIST::Pre();
    for (int _=0;_<n;++_)
    {
        cin >> op;
        switch(op)
        {
            case 0:
                ans = LIST::Get_length();
                cout << ans << endl;
                break;
            case 1:
                cin >> x;
                LIST::Push(x);
                break;
            case 2:
                cin >> x;
                ans = LIST::Query(x);
                cout << ans << endl;
                break;
            case 3:
                LIST::Pop();
                break;
            case 4:
                LIST::Print();
                break;
        }
    }
    LIST::Clear();
    return 0;
}

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!