栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【数据结构与算法】王道考研数据结构与算法2021配套大题第三章(java语言描述)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构与算法】王道考研数据结构与算法2021配套大题第三章(java语言描述)

3.1 栈 3、出入栈是否非法

  挺好写的,我感觉。

public static boolean func(char[] arr) {

	int length = 0;

	for (int i = 0; i < arr.length; i++) {
		if (arr[i] == 'O') length--;
		if (arr[i] == 'I') length++;
		if (length < 0) return false;
	}

	return length == 0;

}

  答案还没我效率高。。。

4、判断回文链表、

  在力扣上刷到过

public static boolean isPalindrome(linkedList head) {

	linkedList p = head.next;
	linkedList q = new linkedList();

	while (p != null) {
		q.next = new linkedList(p.val, q.next);
		p = p.next;
	}

	p = head.next;
	q = q.next;

	while (q != null) {
		if (q.val != p.val) {
			return false;
		}
		p = p.next;
		q = q.next;
	}

	return true;

}

  坑逼,这个题没说传参可以传链表长度。。。传链表长度的话也好整。不用链栈,用数组栈。

5、共享栈

  还从来没试过呢

class SharedStack {

	private final int[] stack;
	public Stack1 s1;
	public Stack2 s2;

	public SharedStack(int maxSize) {
		stack = new int[maxSize];
		s1 = new Stack1();
		s2 = new Stack2();
	}

	public class Stack1 {

		private int top = -1;

		public void push(int value) {
			if (top == s2.top - 1) {
				throw new IndexOutOfBoundsException();
			}
			stack[++top] = value;
		}

		public int pop() {
			if (top < 0) {
				throw new EmptyStackException();
			}
			return stack[top--];
		}

		private Stack1() {
		}

	}

	public class Stack2 {

		private int top = stack.length;

		public void push(int value) {
			if (s1.top == top - 1) {
				throw new IndexOutOfBoundsException();
			}
			stack[--top] = value;
		}

		public int pop() {
			if (top > stack.length - 1) {
				throw new EmptyStackException();
			}
			return stack[top++];
		}

		private Stack2 () {
		}

	}

}

  答案是面向模块设计的,和我这个差别有点大。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号