Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}