10 / \ 5 20 / \ 15 30 / 28 / 24 \ 26 |
After deleting node 5:
10 \ 20 / \ 15 30 / 28 / 24 \ 26 |
10 \ 20 / \ 15 28 / 24 \ 26 |
To delete node 20:
10 \ 24 / \ 15 28 / 26 |
25426251423232651155 Counts = {3,6,2,2,5,2} |
srandom(1); // an arbitrary seed char *string = "hippopotamus"; int size = strlen(string); int ran = random()%size; // 0<=ran<=size-1 printf("%c\n", string[ran]); |
srandom(1); // an arbitrary seed char *string = "hippopotamus"; printf("%c\n", string[random()%strlen(string)]); |
srandom(1); // an arbitrary seed int ran = random()%(j-i+1); // 0<=ran<=j-i int num = i + ran; // i<=num<=j printf("%d\n", num); |
In essence:
// Start: prev cur // | | // NULL [1]->[2]->[3]->[4]-> ... // // Step 1: prev cur temp // | | | // NULL [1]->[2]->[3]->[4]-> ... // // prev cur temp // | | | // NULL<-[1] [2]->[3]->[4]-> ... // // Step 2: prev cur temp // | | | // NULL<-[1] [2]->[3]->[4]-> ... // // prev cur temp // | | | // NULL<-[1]<-[2] [3]->[4]-> ... // // Step 3: prev cur temp // | | | // NULL<-[1]<-[2] [3]->[4]-> ... // // ... // Step n: prev cur temp // | | | // NULL<-[1]<- ... <-[n-1] [n]->NULL // // prev cur temp // | | | // NULL<-[1]<- ... <-[n-1]<-[n] NULL // // Finish: prev cur // | | // NULL<-[1]<- ... <-[n-1]<-[n] NULL |