Mercurial > hg > Gears > Gears
changeset 1049:24390402f72d
...
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 24 Jan 2024 18:50:52 +0900 |
parents | 1a1b50736246 |
children | 88ece4cac620 |
files | src/parallel_execution/RedBlackTree.cbc src/parallel_execution/test/rbTreeCopy_test.cbc |
diffstat | 2 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/RedBlackTree.cbc Wed Jan 24 14:58:32 2024 +0900 +++ b/src/parallel_execution/RedBlackTree.cbc Wed Jan 24 18:50:52 2024 +0900 @@ -118,8 +118,17 @@ } __code leftDown1(struct RedBlackTree* tree, struct Stack* outputStack) { + struct Stack* nodeStack = tree->nodeStack; + struct Node* oldNode = tree->current; + tree->current = tree->current->left; + + printf("leftDown1\n"); + goto nodeStack->push((union Data*)oldNode, leftDown2); +} + +__code leftDown2(struct RedBlackTree* tree, struct Stack* outputStack) { struct Stack* inputStack = tree->inputStack; - printf("leftDown1\n"); + printf("leftDown2\n"); if (tree->current->left) { // ここではnodeStackを積みたいが...... // leftDown2を作るか @@ -147,7 +156,8 @@ __code up(struct RedBlackTree* tree, struct Stack* inputStack, struct Stack* outputStack) { struct Stack* nodeStack = tree->nodeStack; struct Node* newNode = tree->newNode; - struct Node* node = &(inputStack->data)->Node; + // inputStack->data見てるのは間違い + struct Node* node = tree->current; printf("up\n"); // popでNULLだった場合どうなる? if (node->left) {