栈的操作
我需要n个栈,共享大小为m的向量空间,初始状态为各栈等分备用空间,当有栈溢出时,调整各栈的备用空间,将全部备用空间的X%均分给各栈,其余(100-X)%按照上一次调整(令初态为第零次调整)以来各栈增长的比例分配给各栈。
算法如下:
(1)n各栈共享向量空间v[m],开始时每个栈分配空间m/n;
(2)选择栈,尽心入栈操作
(3)当某个栈溢出时,调整如下:将剩余空间的totalfree(即m减去各栈已用空间)和x%相乘,均分给各栈,再将totalfree和(100-x)%的乘积按比例(即各栈在上一次调整以后入栈的个数与总入栈个数之比)分配,然后移动需要移动的栈。
请问上述算法,用C语言怎么写?