📜  数据结构 |堆栈 |问题 1

📅  最后修改于: 2021-09-08 13:35:19             🧑  作者: Mango

下面是一个类似C的函数的伪代码,它以数字为参数,并使用堆栈S进行处理。

void fun(int n)
{
    Stack S;  // Say it creates an empty stack S
    while (n > 0)
    {
      // This line pushes the value of n%2 to stack S
      push(&S, n%2);
  
      n = n/2;
    }
  
    // Run while Stack S is not empty
    while (!isEmpty(&S))
      printf("%d ", pop(&S)); // pop an element from S and print it
}

上面的函数一般有什么作用?
(A)以相反的顺序打印 n 的二进制表示
(B)打印 n 的二进制表示
(C)打印 Logn 的值
(D)以相反的顺序打印 Logn 的值答案: (B)说明:见 https://www.geeksforgeeks.org/binary-representation-of-a-given-number/ 方法二的说明。