下面是关于“LinkedList学习示例模拟堆栈与队列数据结构”的完整攻略。
什么是LinkedList?
LinkedList是Java语言中的一个类,用于表示链表数据结构。链表数据结构可以根据需要进行增、删、改、查等操作,是常用的数据结构之一。
如何使用LinkedList实现堆栈?
堆栈是一种先进后出(LIFO)的数据结构,可以使用LinkedList来实现。以下是示例代码:
// 创建一个LinkedList对象
LinkedList<Integer> stack = new LinkedList<Integer>();
// 压栈操作
stack.push(1);
stack.push(2);
stack.push(3);
// 弹栈操作
int top = stack.pop();
System.out.println(top); // 输出3
在上述代码中,我们首先使用泛型声明一个LinkedList对象来表示堆栈,然后使用push方法进行入栈操作,使用pop方法进行出栈操作。在进行出栈操作时,会返回栈顶元素并将其从栈中移除。可以看到,这个使用LinkedList实现堆栈的代码非常简洁。
如何使用LinkedList实现队列?
队列是一种先进先出(FIFO)的数据结构,同样可以使用LinkedList来实现。以下是示例代码:
// 创建一个LinkedList对象
LinkedList<Integer> queue = new LinkedList<Integer>();
// 入队操作
queue.offer(1);
queue.offer(2);
queue.offer(3);
// 出队操作
int front = queue.poll();
System.out.println(front); // 输出1
在上述代码中,我们同样使用LinkedList来表示队列,使用offer方法进行入队操作,使用poll方法进行出队操作。在进行出队操作时,会返回队头元素并将其从队列中移除。同样可以看到,使用LinkedList实现队列的代码也非常简洁。
示例说明
假设我们需要实现一个简单的计算器,可以输入多个数字和符号进行计算。我们可以使用堆栈来存储数字,使用队列来存储符号。以下是示例代码:
// 创建一个储存数字的堆栈和储存符号的队列
LinkedList<Integer> stack = new LinkedList<Integer>();
LinkedList<Character> queue = new LinkedList<Character>();
// 获取用户输入的字符串
String input = "1+2*3-4";
// 字符串转换为字符数组
char[] chars = input.toCharArray();
// 遍历字符数组
for (char c : chars) {
// 判断字符是否为数字
if (Character.isDigit(c)) {
// 将数字字符转换为int类型
int num = c - '0';
// 将数字压入堆栈
stack.push(num);
} else {
// 将符号入队
queue.offer(c);
}
}
// 计算结果
int result = stack.pop();
while (!queue.isEmpty()) {
char op = queue.poll();
int num = stack.pop();
if (op == '+') {
result += num;
} else if (op == '-') {
result -= num;
} else if (op == '*') {
result *= num;
} else if (op == '/') {
result /= num;
}
}
System.out.println(result); // 输出结果为5
通过该示例,我们可以看到如何利用LinkedList实现堆栈和队列,并将其应用于一个实际的应用场景当中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:LinkedList学习示例模拟堆栈与队列数据结构 - Python技术站