Revisão | 6585a42991cdcc40606934a01ee19472bed10961 (tree) |
---|---|
Hora | 2017-05-03 22:42:41 |
Autor | dhrname <dhrname@user...> |
Commiter | dhrname |
New the ST_pop function
@@ -578,6 +578,11 @@ ST_Stack_List ST_push (double value, ST_Stack_List stack) | ||
578 | 578 | * スタックからは取り除かれる*/ |
579 | 579 | double ST_pop (ST_Stack_List stack) |
580 | 580 | { |
581 | + if (ST_isEmpty(*stack)) | |
582 | + { | |
583 | + /*スタックリストが空リストであれば、ST_EMPTYの値である0.0を返す*/ | |
584 | + return 0.0; | |
585 | + } | |
581 | 586 | /*stackの解放用変数*/ |
582 | 587 | ST_Ordered_Pair *stackfree = NULL; |
583 | 588 |
@@ -382,6 +382,20 @@ int main(int argc, char **argv) | ||
382 | 382 | assert(ST_first(*stack) == 0); |
383 | 383 | assert(ST_push(1, stack) == stack); |
384 | 384 | assert(ST_first(*stack) == 1); |
385 | + ST_push(3, stack); | |
386 | + ST_push(5, stack); | |
387 | + assert(ST_first(*stack) == 5); | |
388 | + assert(ST_first(ST_second(*stack)) == 3); | |
389 | + assert(ST_pop(stack) == 5); | |
390 | + assert(ST_first(*stack) == 3); | |
391 | + assert(ST_pop(stack) == 3); | |
392 | + assert(ST_first(*stack) == 1); | |
393 | + assert(ST_pop(stack) == 1); | |
394 | + assert(ST_first(*stack) == 0); | |
395 | + assert(ST_isEmpty(*stack)); | |
396 | + assert(ST_pop(stack) == 0); | |
397 | + assert(ST_isEmpty(*stack)); | |
398 | + ST_freelist(*stack); | |
385 | 399 | ST_freelist(ppp); |
386 | 400 | |
387 | 401 | eprint_log("Error!\n"); |