From d9c777a47892b4c8cae19fe9f78baa0ebc061656 Mon Sep 17 00:00:00 2001 From: eason <30045503+Eason0729@users.noreply.github.com> Date: Fri, 22 Dec 2023 17:21:58 +0800 Subject: [PATCH] I am waiting for homework requirement to stablize(even unstable rust are more stable than this) --- homework_11 | Bin 39352 -> 40448 bytes src/main.c | 30 +++++++++++++++++++++++---- src/state.c | 3 +++ src/v1.c | 1 - src/v2.c | 58 ++++++++++++++++++++++++++-------------------------- 5 files changed, 58 insertions(+), 34 deletions(-) diff --git a/homework_11 b/homework_11 index 962d8eb95cd10e18f2a85a975174e3534fc81f72..5aa97ef63293acff9255b3fe93cb311e971ea406 100755 GIT binary patch delta 7011 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 delta 5640 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.raw; source->len=D; source->mask.raw=((mask>>(32-D))<<(32-D)); + // display_submask(source); + // printf("\n"); return true; } diff --git a/src/v1.c b/src/v1.c index c849463..c418799 100644 --- a/src/v1.c +++ b/src/v1.c @@ -18,7 +18,6 @@ void input(struct State* state){ struct SizedSubmask* mask=malloc(sizeof(struct SizedSubmask)); parse_submask(buffer,mask); - if(mask<10000)printf("%zu\n",mask); state->head=xor_insert_mid(NULL,state->head,mask); } diff --git a/src/v2.c b/src/v2.c index 76921b4..559176b 100644 --- a/src/v2.c +++ b/src/v2.c @@ -60,45 +60,45 @@ void segment(struct State* state){ mask.len=D; mask.mask.raw=i<<(32-D); - struct Node* head=hash_get(state->hashmap,&mask); - printf("The number of prefixes in group %zu = %zu\n",i,xor_count(head)); - // printf("| "); - // print_binary(i); - // printf(" |"); + // struct Node* head=hash_get(state->hashmap,&mask); + // printf("The number of prefixes in group %zu = %zu\n",i,xor_count(head)); + printf("| "); + print_binary(i); + printf(" |"); - // struct Node* current=hash_get(state->hashmap,&mask); - // struct Node* previous=NULL; + struct Node* current=hash_get(state->hashmap,&mask); + struct Node* previous=NULL; - // while(current!=NULL){ - // struct Node* next=xor_next(previous,current); + while(current!=NULL){ + struct Node* next=xor_next(previous,current); - // printf(" ---> | "); - // display_ip(current->val); - // printf(" |"); + printf(" ---> | "); + display_ip(current->val); + printf(" |"); - // previous=current; - // current=next; - // } - // printf("\n"); + previous=current; + current=next; + } + printf("\n"); } - // { - // printf("--------special group--------\n"); + { + printf("--------special group--------\n"); - // struct Node* current=state->head; - // struct Node* previous=NULL; + struct Node* current=state->head; + struct Node* previous=NULL; - // while(current!=NULL){ - // struct Node* next=xor_next(previous,current); + while(current!=NULL){ + struct Node* next=xor_next(previous,current); - // display_ip(current->val); - // printf("\n"); + display_ip(current->val); + printf("\n"); - // previous=current; - // current=next; - // } + previous=current; + current=next; + } - // printf("-----------------------------\n"); - // } + printf("-----------------------------\n"); + } } \ No newline at end of file