在链表中插入一个数;
(只能插入一个比最大的小的)
#includeint main() { //right[1]=2说明data[1]后面一个元素是data[2] //reght[2]=0说明data[2]后面没有元素 int data[100],right[100]; int i,n,t,len; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&data[i]); } len=n; //初始化right for(i=1;i<=n;i++) { if(i!=n) { right[i]=i+1; } elae { right[i]=0; } } //直接在data末尾加数 len++; scanf("%d",&data[len]); //从链表头开始遍历 t=1; while(t!=0) { //如果当前结点下一个结点的值大于待插入数,将数插入到中间. if(data[right[t]]>data[len]) { right[len]=right[t]; right[t]=len; break;//跳出循环 } t=right[t]; } //输出链表中所有的数 t=1; while(t!=0) { printf("%d ",data[t]); t=right[t]; } return 0; }



