FAstril 2021-07-23 11:40 采纳率: 100%
浏览 61
已结题

这不是头插法吗,为什么结果是顺序输出,不是逆序输出?如输入:12345,不应该输出54321吗?


#include<iostream>
#include<cstdio>
//#include<algorithm>
using namespace std; 
const int N=10;
//head表示头结点的下标
//e[i]表示节点i的值
//ne[i]表示节点i的next指针
//idx表示用到了哪个地址,就是下标
int head= -1,e[N],ne[N],idx;
void add_to_head(int x)
{
    e[idx]=x;
    ne[idx]=head;
    head=idx++; 
} 
int main()
{
    int val;
    while(scanf("%d",&val) != EOF) //~scanf表示没有输入值的时候,结束while循环
    {
        add_to_head(val);
    } 
    for(int i=head;i!=-1;i=ne[i])
        cout<<e[i]<<" ";
    cout<<endl;
    return 0;
}
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-07-23 14:59
    关注

    供参考:

    
    #include<iostream>
    #include<cstdio>
    //#include<algorithm>
    using namespace std;
    const int N = 10;
    //head表示头结点的下标
    //e[i]表示节点i的值
    //ne[i]表示节点i的next指针
    //idx表示用到了哪个地址,就是下标
    int head = -1, e[N], ne[N], idx = 0;
    
    void add_to_head(int x)
    {
        e[idx] = x;
        ne[idx] = head;
        head = idx++;
    }
    int main()
    {
        int val;
        while (cin>>val) //ctrl + z
        {
            add_to_head(val);
        }
        for (int i = head; i != -1; i = ne[i])
            cout << e[i] << " ";
        cout << endl;
        return 0;
    }
    
    //1 2 3 4 5 ^ Z
    //e[0] = 1, head = 0, ne[0] = -1
    //e[1] = 2, head = 1, ne[1] = 0
    //e[2] = 3, head = 2, ne[2] = 1
    //e[3] = 4, head = 3, ne[3] = 2
    //e[4] = 5, head = 4, ne[4] = 3
    //5 4 3 2 1
    //请按任意键继续. . .
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日
  • 创建了问题 7月23日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度