Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
62
Task/Stack/AWK/stack.awk
Normal file
62
Task/Stack/AWK/stack.awk
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
function deque(arr) {
|
||||
arr["start"] = 0
|
||||
arr["end"] = 0
|
||||
}
|
||||
|
||||
function dequelen(arr) {
|
||||
return arr["end"] - arr["start"]
|
||||
}
|
||||
|
||||
function empty(arr) {
|
||||
return dequelen(arr) == 0
|
||||
}
|
||||
|
||||
function push(arr, elem) {
|
||||
arr[++arr["end"]] = elem
|
||||
}
|
||||
|
||||
function pop(arr) {
|
||||
if (empty(arr)) {
|
||||
return
|
||||
}
|
||||
return arr[arr["end"]--]
|
||||
}
|
||||
|
||||
function unshift(arr, elem) {
|
||||
arr[arr["start"]--] = elem
|
||||
}
|
||||
|
||||
function shift(arr) {
|
||||
if (empty(arr)) {
|
||||
return
|
||||
}
|
||||
return arr[++arr["start"]]
|
||||
}
|
||||
|
||||
function peek(arr) {
|
||||
if (empty(arr)) {
|
||||
return
|
||||
}
|
||||
return arr[arr["end"]]
|
||||
}
|
||||
|
||||
function printdeque(arr, i, sep) {
|
||||
printf("[")
|
||||
for (i = arr["start"] + 1; i <= arr["end"]; i++) {
|
||||
printf("%s%s", sep, arr[i])
|
||||
sep = ", "
|
||||
}
|
||||
printf("]\n")
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
deque(q)
|
||||
for (i = 1; i <= 10; i++) {
|
||||
push(q, i)
|
||||
}
|
||||
printdeque(q)
|
||||
for (i = 1; i <= 10; i++) {
|
||||
print pop(q)
|
||||
}
|
||||
printdeque(q)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue