m0_62180682
2021-09-22 20:03
采纳率: 100%
浏览 55

线性表采用顺序表L存储的问题

已知一个整数线性表采用顺序表L存储。设计一个尽可能高效的算法删除其中所有值为负整数的元素(假设L中值为负整数的元素可能有多个)。

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 快乐鹦鹉 2021-09-22 20:06
    已采纳

    遍历数组,将不是负数的值复制到数组从0开始的位置即可。

    typedef struct _seqlist
    {
        int data[1000];
        int len;
    }seqlist;
    seqlist s;
    void remove()
    {
      int n=0;
      for(int i=0;i<s.len;i++)
      {
          if(s.data[i] >= 0)
              s.data[n++] = s.data[i];
      }
      s.len = n;
    }
    
    已采纳该答案
    评论
    解决 3 无用
    打赏 举报
  • 歌咏^0^ 2021-09-22 20:29

    这个问题相当于不一个数组里面的负数都排除,还要使数据都挨在一起,是这么个意思吧

    大兄弟啊,顺序表存储啊,我提供一个思路:

    最高效的方法我觉得如下:
    定义另一个数组,在for循环中,挨个读取顺序表,是非负数就存入新数组中,是负数的话,就读下一个,如此循环

    ^o^高效简单吧,快给我个赞吧,大兄弟

    评论
    解决 2 无用
    打赏 举报

相关推荐 更多相似问题