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

Posted 九死九歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法王道考研数据结构与算法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 () 
		

	


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

以上是关于数据结构与算法王道考研数据结构与算法2021配套大题第三章(java语言描述)的主要内容,如果未能解决你的问题,请参考以下文章

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

王道数据结构与算法之排序算法

王道数据结构与算法之排序算法

专栏必读王道考研408数据结构+计算机算法设计与分析万字笔记题目题型总结注意事项目录导航和思维导图

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念算法的特性及设计要求

(王道408考研数据结构)第四章串-第二节:串的模式匹配算法(朴素和KMP)