使用Python语言定义一个Stack类,包含list类型的私有属性data和指向栈顶位置的私有变量top,定义一个无参构造方法,初始化两个私有属性;另外需要定义入栈(push)、出栈(pop)、判断栈空(isEmpty)、取栈顶元素(getTop)、取栈中元素个数(getLen)的公共方法。 定义一个函数利用自己定会的Stack进行进制转换,可以计算任意进制的结果,把出栈后的序列转换为字符串返回给调用者 定义测试函数进行测试。
时间: 2024-03-08 10:48:47 浏览: 94
1.泛型类 、通配符的使用、通配符的上限和下限 编写泛型类Stack<E>,该类中定义一个成员变量和如下方法:
5星 · 资源好评率100%
下面是使用Python语言定义的Stack类和进行进制转换的函数:
```python
class Stack:
def __init__(self):
self.__data = []
self.__top = -1
def push(self, item):
self.__data.append(item)
self.__top += 1
def pop(self):
if self.isEmpty():
return None
else:
item = self.__data[self.__top]
del self.__data[self.__top]
self.__top -= 1
return item
def isEmpty(self):
return self.__top == -1
def getTop(self):
if self.isEmpty():
return None
else:
return self.__data[self.__top]
def getLen(self):
return self.__top + 1
def convert(num, base):
if not isinstance(num, int) or not isinstance(base, int):
return None
digits = "0123456789ABCDEF"
s = Stack()
while num > 0:
rem = num % base
s.push(rem)
num //= base
res = ""
while not s.isEmpty():
res += digits[s.pop()]
return res
def test():
num = 123
base = 16
res = convert(num, base)
print("The result of converting {} to base {} is: {}".format(num, base, res))
test()
```
在测试函数中,可以更改num和base的值进行测试。
阅读全文