Skip to content

Commit 246a600

Browse files
committed
Array Stack added(2methods to do), Bracket Validator ver1(not completed)
1 parent a3f3ee0 commit 246a600

36 files changed

+803
-15
lines changed

ArrayStack03_17/.idea/workspace.xml

Lines changed: 59 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ArrayStackT03_17/.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ArrayStackT03_17/.idea/misc.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ArrayStackT03_17/.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ArrayStackT03_17/.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ArrayStackT03_17/.idea/workspace.xml

Lines changed: 54 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" packagePrefix="inter" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>

ArrayStackT03_17/InterStack.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package inter;
2+
3+
public interface InterStack<E> {
4+
boolean isEmpty();
5+
E top();
6+
E pop();
7+
void push(E item);
8+
int size();
9+
int deepLevel(E item);
10+
}

ArrayStackT03_17/TArrayStack.java

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package lib;
2+
3+
import inter.InterStack;
4+
5+
import java.util.EmptyStackException;
6+
7+
public class TArrayStack<E> implements InterStack<E> {
8+
private int end;
9+
private int maxSize;
10+
private int size;
11+
private E[] memoryStack;
12+
13+
public TArrayStack(int maxSize) {
14+
if( maxSize < 1 )
15+
this.maxSize = 16;
16+
else
17+
this.maxSize = maxSize;
18+
memoryStack = (E[]) new Object[this.maxSize];
19+
end = 0;
20+
size = 0;
21+
}
22+
23+
@Override
24+
public boolean isEmpty() {
25+
return size == 0;
26+
}
27+
28+
@Override
29+
public E top() {
30+
if( size == 0 ) {
31+
throw new EmptyStackException();
32+
} else {
33+
return memoryStack[end];
34+
}
35+
}
36+
37+
@Override
38+
public E pop() {
39+
if (size == 0) {
40+
throw new EmptyStackException();
41+
} else {
42+
if (end != 0)
43+
end--;
44+
size--;
45+
return memoryStack[size];
46+
}
47+
}
48+
49+
@Override
50+
public void push(E item) {
51+
if( size == maxSize ) {
52+
throw new StackOverflowError();
53+
} else if ( size == 0 ) {
54+
memoryStack[end] = item;
55+
size++;
56+
} else {
57+
end++;
58+
memoryStack[end] = item;
59+
size++;
60+
}
61+
}
62+
63+
public void extendMemory(){
64+
int newMaxSize = (int) Math.round(maxSize*1.5);
65+
E[] newTab = (E[]) new Object[newMaxSize];
66+
System.arraycopy(this.memoryStack,0,newTab,0,this.size);
67+
this.memoryStack=newTab;
68+
this.maxSize=newMaxSize;
69+
}
70+
71+
@Override
72+
public int size() {
73+
return size;
74+
}
75+
76+
@Override
77+
public int deepLevel(E item) {
78+
return 0;
79+
//TODO int deepLevel(item)sprawdzającą ja głęboko na stosie jest dostępny szukany elementitem.
80+
}
81+
82+
public boolean isFull(){
83+
return size == maxSize;
84+
}
85+
86+
public String printStack(){
87+
//todo String printStack()pozwalającą na wyświetlenie stosu w postacikolejnych elementów tablicy. Przykładowo jeżeli do stosu przekażemy napisy: „ene”, „due”, „rike”, „fake”, to metoda produkuje łańcuch znaków postaci:Tab[3]=fake <-topTab[2]=rikeTab[1]=dueTab[0]=ene
88+
return "";
89+
}
90+
}

ArrayStackT03_17/expression01.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
( 2 + 3 ) * 10 - ( 20 + 4 ) / 6 + ( 13 + 2 ) % 7

0 commit comments

Comments
 (0)