int main(int argc, char *argv[]) { CircleList* list = CircleList_Create(); struct Value v1; struct Value v2; struct Value v3; struct Value v4; struct Value v5; struct Value v6; struct Value v7; struct Value v8; int i = 0; v1.v = 1; v2.v = 2; v3.v = 3; v4.v = 4; v5.v = 5; v6.v = 6; v7.v = 7; v8.v = 8; CircleList_Insert(list, (CircleListNode*)&v1, 0); CircleList_Insert(list, (CircleListNode*)&v2, 0); CircleList_Insert(list, (CircleListNode*)&v3, 0); CircleList_Insert(list, (CircleListNode*)&v4, 0); CircleList_Insert(list, (CircleListNode*)&v5, 0); CircleList_Insert(list, (CircleListNode*)&v6, 0); CircleList_Insert(list, (CircleListNode*)&v7, 0); CircleList_Insert(list, (CircleListNode*)&v8, 0); for(i=0; i<CircleList_Length(list); i++) { struct Value* pv = (struct Value*)CircleList_Get(list, i); printf("%d\n", pv->v); } puts(" "); CircleList_joseph(list,0,2); printf("\n"); CircleList_Destroy(list); return 0; }
int main(int argc, const char * argv[]) { CircleList *list = CircleList_Create(); Student stu1, stu2, stu3, stu4, stu5, stu6, stu7, stu8; stu1.id = 1; stu2.id = 2; stu3.id = 3; stu4.id = 4; stu5.id = 5; stu6.id = 6; stu7.id = 7; stu8.id = 8; CircleList_Insert(list, (CircleListNode *)&stu1, 0); CircleList_Insert(list, (CircleListNode *)&stu2, 1); CircleList_Insert(list, (CircleListNode *)&stu3, 2); CircleList_Insert(list, (CircleListNode *)&stu4, 3); CircleList_Insert(list, (CircleListNode *)&stu5, 4); CircleList_Insert(list, (CircleListNode *)&stu6, 5); CircleList_Insert(list, (CircleListNode *)&stu7, 6); CircleList_Insert(list, (CircleListNode *)&stu8, 7); printf("start:\n"); for (int i = 0; i < CircleList_Length(list); i++) { // CircleListNode *node = CircleList_Get(list, i); Student *stu = (Student *)CircleList_Next(list); printf("--->%d",stu->id); } //重置游标 CircleList_Reset(list); printf("\nend:\n"); while (CircleList_Length(list)) { Student *node = NULL; for (int j = 1; j < STEP; j ++) { CircleList_Next(list); } node = (Student *)CircleList_Current(list); printf("--->%d",node->id); CircleList_DeleteNode(list, (CircleListNode *)node); } putchar('\n'); CircleList_Destroy(list); return 0; }