注册 登录
编程论坛 数据结构与算法

请问插入 和 删除 出了什么问题

allenz0810 发布于 2012-09-29 09:17, 510 次点击
if(is_full(st))
            {
                return false;
            }
            else if (tempi < 1 || tempi > st->id+1)
            {
                return false;
            }
            for (k = st->id; k < tempi-1; k--)
            {
                st->students[k+1] = st->students[k];
            }
            st->students[tempi-1] = val;
            st->id++;
--------------------------------------------------------------------------上面是插入 为什么插入的位子数字被覆盖了



if(is_empty(st))
                    {
                        return false;
                    }
                if (tempi < 1 || tempi > st->id)
                    {
                        return false;
                    }
                for (k = st->id-1; k > tempi-1; k--)
                     {
                        st->students[k-1] = st->students[k];
                     }
                     st->id--;

--------------------------------------------------------------------------为什么一点删除所有的都被删除了
4 回复
#2
寒风中的细雨2012-09-29 18:33
费解呀  不好猜测 你想怎么添加  怎样删除......
#3
allenz08102012-09-30 03:00
回复 2楼 寒风中的细雨
动态数组 方式
#4
grc01082012-10-02 13:32
插入操作时for语句没用到,编译连接时直接插入了。
#5
qi5945132012-10-03 16:37
应该是for循环里语句有错误  
  比如说那删除语句 st->students[k-1] = st->students[k];
  你可以改成  t=st->students[k]               
               e=st->students[k-1]
                  st->students[k-1] =t
                     t=e     
1