I was given this lowquality code Here are tables given to me
I was given this \"low-quality\" code:
Here are tables given to me to fill out (I\'m a bit confused, but I do have the decimal offsets figured out)
void foo (int x) int a [3]; char buf [4] a 11 gets (buf); print f (\"a 0 0x x, a [1] Oxsx, buf s n\", a [01, a C1), buf) In a program containing this code, procedure foo has the following disassembled form: LCO: string \"a [0] 0x x, a [1] 0x x, buf s n\" foo push %rbx subg $16, srsp Gedi, sebx movl &rsp; %rdi nova call gets &rsp; orCX nova movl Sebx, oedx movl $-2525 79085 se si movl LCO oedi movl 0, eaX printf call addq 16 \"orSp Srbx popq ret For the following questions, recall that: gets is a standard C library routine. x86-64 machines are little-endian. C strings are null-terminated (i.e., terminated by a character with value 0x00). Characters \'0\' through \'9\' have ASCII codes 0x30 through 0x39.Solution
class TwoStacks
{
int size;
int top1, top2;
int arr[];
// Constructor
TwoStacks(int n)
{
arr = new int[n];
size = n;
top1 = -1;
top2 = size;
}
// Method to push an element x to stack1
void push1(int x)
{
// There is at least one empty space for
// new element
if (top1 < top2 - 1)
{
top1++;
arr[top1] = x;
}
else
{
System.out.println(\"Stack Overflow\");
System.exit(1);
}
}
// Method to push an element x to stack2
void push2(int x)
{
// There is at least one empty space for
// new element
if (top1 < top2 -1)
{
top2--;
arr[top2] = x;
}
else
{
System.out.println(\"Stack Overflow\");
System.exit(1);
}
}
// Method to pop an element from first stack
int pop1()
{
if (top1 >= 0)
{
int x = arr[top1];
top1--;
return x;
}
else
{
System.out.println(\"Stack Underflow\");
System.exit(1);
}
return 0;
}
// Method to pop an element from second stack
int pop2()
{
if(top2 < size)
{
int x =arr[top2];
top2++;
return x;
}
else
{
System.out.println(\"Stack Underflow\");
System.exit(1);
}
return 0;
}
// Driver program to test twoStack class
public static void main(String args[])
{
TwoStacks ts = new TwoStacks(5);
ts.push1(5);
ts.push2(10);
ts.push2(15);
ts.push1(11);
ts.push2(7);
System.out.println(\"Popped element from\" +
\" stack1 is \" + ts.pop1());
ts.push2(40);
System.out.println(\"Popped element from\" +
\" stack2 is \" + ts.pop2());
}
}



