• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisãoecdfc31b43580b7ecba270a10e36ce8c4f1f19ac (tree)
Hora2018-05-13 22:53:14
Autordhrname <dhrname@user...>
Commiterdhrname

Mensagem de Log

Add the ST_copyNode function

Mudança Sumário

Diff

--- a/source_code/orderedpair/list/tree/nodelist/ntree.h
+++ b/source_code/orderedpair/list/tree/nodelist/ntree.h
@@ -34,3 +34,8 @@ ST_Node ST_getLastChild(ST_Node);
3434 /*ST_getPreviewNode 関数
3535 * 引数で指定されたノードにとって、前隣りのノードを取得*/
3636 ST_Node ST_getPreviewNode(ST_Node);
37+
38+/*ST_copyNode 関数
39+ * 引数で指定されたノードのコピーを作成
40+ * 子ノードも含めてコピーする*/
41+ST_Node ST_copyNode(ST_Node);
--- a/source_code/shadowstar.c
+++ b/source_code/shadowstar.c
@@ -963,3 +963,15 @@ ST_Node ST_getPreviewNode(ST_Node node)
963963 {
964964 return ST_getSecondTree(node);
965965 }
966+
967+/*ST_copyNode 関数
968+ * 引数で指定されたノードのコピーを作成
969+ * 子ノードも含めてコピーする*/
970+ST_Node ST_copyNode(ST_Node node)
971+{
972+ if (ST_isEmpty(node))
973+ {
974+ return ST_EMPTY;
975+ }
976+ return ST_createNode(ST_getNodeValue(node), ST_getLastChild(node), ST_getPreviewNode(node));
977+}
Binary files a/source_code/shadowstar.o and b/source_code/shadowstar.o differ
--- a/source_code/startest.c
+++ b/source_code/startest.c
@@ -677,10 +677,18 @@ int main(int argc, char **argv)
677677 assert( ST_getLastChild(node4) == node2);
678678 assert( ST_getLastChild(node4) != node3);
679679 assert( ST_getPreviewNode(node4) == node3);
680+ ST_Node node5 = ST_copyNode(node4);
681+ assert( ST_isEmpty(ST_copyNode(ST_EMPTY)) );
682+ assert( ST_getNodeValue(node5) == node);
683+ assert( ST_getNodeValue(node5) != node2);
684+ assert( ST_getLastChild(node5) == node2);
685+ assert( ST_getLastChild(node5) != node3);
686+ assert( ST_getPreviewNode(node5) == node3);
680687 ST_freetree(node);
681688 ST_freetree(node2);
682689 ST_freetree(node3);
683690 ST_freetree(node4);
691+ ST_freetree(node5);
684692
685693 errno = 0;
686694 eprint_log("Error!\n");
@@ -752,6 +760,14 @@ int tests_invalid() {
752760 assert(ST_isEmpty(ST_reverse(NULL)));
753761 assert(ST_isEmpty(ST_reverse(ST_EMPTY)));
754762
763+ ST_createNode(NULL, ST_EMPTY, ST_EMPTY);
764+ ST_createNode(ST_EMPTY, NULL, ST_EMPTY);
765+ ST_createNode(ST_EMPTY, ST_EMPTY, NULL);
766+
767+ assert( ST_isEmpty(ST_getNodeValue(NULL)) );
768+ assert( ST_isEmpty(ST_getLastChild(NULL)) );
769+ assert( ST_isEmpty(ST_getPreviewNode(NULL)) );
770+
755771 printf("ended error test...\n");
756772
757773 return 0;
Binary files a/source_code/startest.o and b/source_code/startest.o differ