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());

    }

}

I was given this \
I was given this \
I was given this \
I was given this \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site