diff --git a/src/Design/BrowserHistory/BrowserHistory.java b/src/Design/BrowserHistory/BrowserHistory.java new file mode 100644 index 0000000..02e0554 --- /dev/null +++ b/src/Design/BrowserHistory/BrowserHistory.java @@ -0,0 +1,32 @@ +class BrowserHistory +{ + List browse = new ArrayList<>(); + int length = 0; + int rank = 0; + public BrowserHistory(String homepage) + { + browse.add(homepage); + } + + public void visit(String url) + { + while(rank-length<0) + { + browse.remove(length--); + } + browse.add(++length, url); + rank = length; + } + + public String back(int steps) + { + rank = rank - steps < 0 ? 0: rank - steps; + return browse.get(rank); + } + + public String forward(int steps) + { + rank = rank + steps > length ? length: rank+steps; + return browse.get(rank); + } +}