Use C to implement the code.
Suppose you are given a single array. You are required to implement two non-overlapping stack data structures, Stack1 and Stack2, without making use of any other array or list (an additional set of integer variables is permitted). That is, write algorithms (in pseudocode) for the functions push1(e), push2(e), pop1(), pop2(), is_empty1(), is_empty2(), and is_full(). The function is_full() should return 1 if and only if there is no empty slot in the array to insert items for either stack. Your implementation should allow push1() and push2() to successfully add items to the stacks.