例如一组数[4,8,1,3,5,9,6],现在给出一个数5,发现里面已经有了,那么就把5前置到左边第一位。即给个N,如果N在数组中存在,就前置到最前第一位。scl如何写?
ASs='html_titleimg_p' STyle='text-align:CEnter;'>
最佳答案
这里假设你这个数组里没有重复的数字,可以按下面的程序编写实现
FOR#i:=0TO6DO
IF#Array[#i]=#NTHEN
IF#i=0THEN//当第一位就是你N时,直接退出循环;
EXIT;
ELSE
FOR#j:=#iTO1DO//如果不是第一个是N,则需要等于N的那个数组元素提到第一位,并且把其它向后移;
#Array[#j]:=#Array[#j–1];
END_FOR;
#Array[0]:=#N;
END_IF;
END_IF;
END_FOR;
提问者对于答案的评价:
我把这个嵌套进去后,无法进行数据入栈,指针数直接为21。正常时栈内是全部位零,应该是上升沿触每发一下新写进去一个不为零的数,如果栈内已经有这个数了,那就把它前置到第一位,没有的话就写排到现有的以后一个不为零的数后面。大哥有空的话你加我QQ2300023577帮我看看吧