Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,2 +0,0 @@
|
|||
01 stack.
|
||||
05 head USAGE IS POINTER VALUE NULL.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
01 node BASED.
|
||||
COPY node-info REPLACING
|
||||
01 BY 05
|
||||
node-info BY info.
|
||||
05 link USAGE IS POINTER VALUE NULL.
|
||||
|
|
@ -1 +0,0 @@
|
|||
01 node-info PICTURE X(10) VALUE SPACES.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
01 p PICTURE 9.
|
||||
88 nil VALUE ZERO WHEN SET TO FALSE IS 1.
|
||||
88 t VALUE 1 WHEN SET TO FALSE IS ZERO.
|
||||
|
|
@ -1,247 +0,0 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. push.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
01 node-info-any PICTURE X ANY LENGTH.
|
||||
PROCEDURE DIVISION USING stack node-info-any.
|
||||
ALLOCATE node
|
||||
CALL "pointerp" USING
|
||||
BY REFERENCE ADDRESS OF node
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF nil
|
||||
CALL "stack-overflow-error" END-CALL
|
||||
ELSE
|
||||
MOVE node-info-any TO info OF node
|
||||
SET link OF node TO head OF stack
|
||||
SET head OF stack TO ADDRESS OF node
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM push.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. pop.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY node-info.
|
||||
PROCEDURE DIVISION USING stack node-info.
|
||||
CALL "empty" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF t
|
||||
CALL "stack-underflow-error" END-CALL
|
||||
ELSE
|
||||
SET ADDRESS OF node TO head OF stack
|
||||
SET head OF stack TO link OF node
|
||||
MOVE info OF node TO node-info
|
||||
END-IF
|
||||
FREE ADDRESS OF node
|
||||
GOBACK.
|
||||
END PROGRAM pop.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. empty.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY p.
|
||||
PROCEDURE DIVISION USING stack p.
|
||||
CALL "pointerp" USING
|
||||
BY CONTENT head OF stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF t
|
||||
SET t TO FALSE
|
||||
ELSE
|
||||
SET t TO TRUE
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM empty.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. head.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY node-info.
|
||||
PROCEDURE DIVISION USING stack node-info.
|
||||
CALL "empty" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF t
|
||||
CALL "stack-underflow-error" END-CALL
|
||||
ELSE
|
||||
SET ADDRESS OF node TO head OF stack
|
||||
MOVE info OF node TO node-info
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM head.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. peek.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY node-info.
|
||||
PROCEDURE DIVISION USING stack node-info.
|
||||
CALL "head" USING
|
||||
BY CONTENT stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
GOBACK.
|
||||
END PROGRAM peek.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. pointerp.
|
||||
DATA DIVISION.
|
||||
LINKAGE SECTION.
|
||||
01 test-pointer USAGE IS POINTER.
|
||||
COPY p.
|
||||
PROCEDURE DIVISION USING test-pointer p.
|
||||
IF test-pointer EQUAL NULL
|
||||
SET nil TO TRUE
|
||||
ELSE
|
||||
SET t TO TRUE
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM pointerp.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. stack-overflow-error.
|
||||
PROCEDURE DIVISION.
|
||||
DISPLAY "stack-overflow-error" END-DISPLAY
|
||||
STOP RUN.
|
||||
END PROGRAM stack-overflow-error.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. stack-underflow-error.
|
||||
PROCEDURE DIVISION.
|
||||
DISPLAY "stack-underflow-error" END-DISPLAY
|
||||
STOP RUN.
|
||||
END PROGRAM stack-underflow-error.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. copy-stack.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node-info.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY stack REPLACING stack BY new-stack.
|
||||
PROCEDURE DIVISION USING stack new-stack.
|
||||
CALL "empty" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF nil
|
||||
CALL "pop" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
CALL "copy-stack" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE new-stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM copy-stack.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. reverse-stack.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node-info.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
COPY stack REPLACING stack BY new-stack.
|
||||
PROCEDURE DIVISION USING stack new-stack.
|
||||
CALL "empty" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF nil
|
||||
CALL "pop" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE new-stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
CALL "reverse-stack" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM reverse-stack.
|
||||
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. traverse-stack.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY p.
|
||||
COPY node-info.
|
||||
COPY stack REPLACING stack BY new-stack.
|
||||
LINKAGE SECTION.
|
||||
COPY stack.
|
||||
PROCEDURE DIVISION USING stack.
|
||||
CALL "copy-stack" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
CALL "empty" USING
|
||||
BY REFERENCE new-stack
|
||||
BY REFERENCE p
|
||||
END-CALL
|
||||
IF nil
|
||||
CALL "head" USING
|
||||
BY CONTENT new-stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
DISPLAY node-info END-DISPLAY
|
||||
CALL "peek" USING
|
||||
BY CONTENT new-stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
DISPLAY node-info END-DISPLAY
|
||||
CALL "pop" USING
|
||||
BY REFERENCE new-stack
|
||||
BY REFERENCE node-info
|
||||
END-CALL
|
||||
DISPLAY node-info END-DISPLAY
|
||||
CALL "traverse-stack" USING
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
END-IF
|
||||
GOBACK.
|
||||
END PROGRAM traverse-stack.
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. stack-test.
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
COPY stack.
|
||||
COPY stack REPLACING stack BY new-stack.
|
||||
PROCEDURE DIVISION.
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY CONTENT "daleth"
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY CONTENT "gimel"
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY CONTENT "beth"
|
||||
END-CALL
|
||||
CALL "push" USING
|
||||
BY REFERENCE stack
|
||||
BY CONTENT "aleph"
|
||||
END-CALL
|
||||
CALL "traverse-stack" USING
|
||||
BY REFERENCE stack
|
||||
END-CALL
|
||||
CALL "reverse-stack" USING
|
||||
BY REFERENCE stack
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
CALL "traverse-stack" USING
|
||||
BY REFERENCE new-stack
|
||||
END-CALL
|
||||
STOP RUN.
|
||||
END PROGRAM stack-test.
|
||||
|
||||
COPY stack-utilities.
|
||||
Loading…
Add table
Add a link
Reference in a new issue