Exemplo n.º 1
0
void testSelectSortLink(){
    srand((unsigned)time(NULL));
    //生成一些随机数,并打印
    int n = 10;
    int a[n];
    for(int i = 0; i < n; i++){
        a[i] = rand()%100;
    }
    //create link list
    LinkList list = (LinkList)malloc(sizeof(LinkList));
    LinkList curLink = list;
    for (int i = 0; i < n; i++) {
        LinkList newLink = (LinkList)malloc(sizeof(LinkList));
        newLink->link = NULL;
        newLink->data = a[i];
        curLink->link = newLink;
        curLink = newLink;
    }
    printLinkList(list);
    //sort
    selectSortLink(list);
    
    printLinkList(list);
    
}
Exemplo n.º 2
0
int main() {
    linknode *flist,*rlist,*find;
    int index; char value;
    rlist=(linknode*)malloc(sizeof(linknode));
    rlist->next=NULL;
    printf("plase input a sting,end with the KEY_Enter \n");
    //flist=CreateListF();
    //printLinkList(flist);
    CreateListR(rlist);
    printLinkList(rlist);
    printf("list length=%d \n",getLength(rlist));
    printf("set insert node:index,value:");
    scanf("%d,%c",&index,&value);
    printf("insert a element!");
    insertList(rlist,value,index);
    printLinkList(rlist);
    printf("list length=%d \n",getLength(rlist));
    printf("set delete node index:");
    scanf("%d",&index);
    deleteList(rlist,index);
    printf("delete a element!");
    printLinkList(rlist);
    printf("list length=%d \n",getLength(rlist));
    printf("set visit node index:");
    scanf("%d",&index);
    find=getNode(rlist,index);
    if(find!=NULL)
    {
        printf("this node value=%c \n",find->data);
    }
    
    return 0;
}
Exemplo n.º 3
0
int main(){
	Node *root = createNode(2);
    root->next = createNode(5);
    root->next->next = createNode(7);
    root->next->next->next = createNode(8);
    root->next->next->next->next = createNode(10);
	printLinkList(root);
	deleteNode(&(root->next->next));
	printLinkList(root);
	deleteNode(&(root->next->next->next));
	printLinkList(root);

	return 0;
}
Exemplo n.º 4
0
int main(int argv, char *argc[])
{
    printf("Hello World\n");

    BSTreeNode p1, p2, p3, p4, p5;
    p1.m_nValue = 10;
    p2.m_nValue = 5;
    p3.m_nValue = 15;
    p4.m_nValue = 8;
    p5.m_nValue = 12;

    p1.m_pLeft = &p2;
    p1.m_pRight = &p3;
    p2.m_pLeft = NULL;
    p2.m_pRight = &p4;
    p3.m_pLeft = &p5;
    p3.m_pRight = NULL;

    p4.m_pLeft = NULL;
    p4.m_pRight = NULL;
    p5.m_pLeft = NULL;
    p5.m_pRight = NULL;

    BSTreeNode* pTemp = Convert2(&p1);
    printLinkList(pTemp);

    printf("Hello World\n");

    return 0;
}
Exemplo n.º 5
0
int main(int argc, const char *argv[])
{
    LinkList La;
    LinkList Lb;
    LinkList L;

    int lenA, lenB, positionAtA;
    printf("Input the length of A:\n");
    scanf("%d", &lenA);
    printf("\nInput the length of B:\n");
    scanf("%d", &lenB);
    printf("\nInput the position at A to insert B: ");
    scanf("%d", &positionAtA);



    autoCreateLinkList(&La, lenA);
    autoCreateLinkList(&Lb, lenB);

    crossTwoLinkList(La, Lb, positionAtA);


    initLinkList(&L);
    L->next = checkIfCross(La, Lb);

    if(L != NULL){
        printLinkList(L);
    }else{
        printf("None\n");
    }

    return 0;
}
Exemplo n.º 6
0
int FloydCycle(Node *root){

    Node *slow, *fast;
    slow = root;
    fast = root;
    int flag = 0;
//Normal Way
//Do not use it while detection cycle;
/*
    while(slow && fast){

        fast = fast->next;
        if(slow == fast){
            flag=1;
            break;
        }
        if(fast == NULL){
            break;
        }
        fast = fast->next;
        if(slow == fast){
            flag=1;
            break;
        }
        slow = slow->next;
    }
*/
    // To detect Cycle do as follow
    do{
        if(!fast || !fast->next){
            return 0;
        }
        else{
            slow = slow->next;
            fast = fast->next->next;
        }

    }while(slow != fast);

    printf("Cycle Found\n");
    slow = root;
    Node *start;
    while(slow != fast){
        printf("%d %d\n",slow->data,fast->data);
        slow = slow->next;
        start = fast;
        fast = fast->next;

    }
    //to remove loop;
    start->next = NULL;

    printLinkList(root);
    printf("Start of loop :%d\n",fast->data);
    return 1; // returning start of loop
}
Exemplo n.º 7
0
int main()
{
	int seq[]={1,2,3,4,5,6,7,8,9};
	int size;
	size=sizeof(seq)/sizeof(seq[0]);
	LinkList *head;
	head=createLinkList(seq,size);
	printLinkList(head);
	return 0;
}
Exemplo n.º 8
0
main() {
    TestStruct* root = NULL;
    int number, i = 0;

    printf("Please enter the list of number!\n");
    while(1){
        printf("Number #%d\n", ++i);
        scanf("%d", &number);
        while(getchar() != '\n');
       	
        if(number == 0) 
        	break;
        insertTop(&root, number);
    }

    printf("Before deleting\n");
    printLinkList(root);
    deleteLastNode(&root);
    printf("After deleting\n");
    printLinkList(root);
}
Exemplo n.º 9
0
void crossTwoLinkList(LinkList La, LinkList Lb, int positionAtA){
   ListNode *a, *b;
   if(La == NULL || Lb == NULL || positionAtA < 1) return;
   a = La;
   b = Lb;
   int i;
   for(i= 1; i < positionAtA && a != NULL; ++i){
       a = a->next;
   }

   if(i < positionAtA && a == NULL) return;

   while(b->next)
       b = b->next;

   b->next = a->next;

   printLinkList(La);
   printf("\n");
   printLinkList(Lb);
   printf("\n");
}
Exemplo n.º 10
0
int main(int argc, const char *argv[])
{
    LinkList L;
    int k;
    autoCreateLinkList(&L, 10);
    printLinkList(L);

    printf("Input K: ");
    scanf("%d",&k);
    findKthToTail(L, k);

    return 0;
}
Exemplo n.º 11
0
int main(int argc, char *argv[])
{
	srand(time(NULL));
	LinkList L = NULL;
	LinkList Q = NULL;
/*
	printf("头插法初始化:\n");
	initLinkListHead(&L, 10);
	printLinkList(L);

	printf("尾查法初始化:\n");
	initLinkListTail(&L, 10);
	printLinkList(L);

	printf("第九个位置插入99\n");
	insertItemAt(&L, 9, 99);
	printLinkList(L);

*/
	int n;
	printf("Sort init:\n");
	for (int i = 0; i < 10; i++) {
		scanf("%d", &n);
		insertLinkListSort(&L, n);
	}

	printf("Sort init:\n");
	for (int i = 0; i < 10; i++) {
		scanf("%d", &n);
		insertLinkListSort(&Q, n);
	}

	printLinkList(L);
	printLinkList(Q);
	printf("xiangjiaodian: %d.\n", intersectItem(L, Q));
//	if (isIntersect(L, Q)) {
//		printf("Is Intersect.\n");
//	} else {
//		printf("is not intersect.\n");
//	}
//	printf("Delete recur item:\n");
//	deleteRecurItem(L);
//	printLinkList(L);

	//mergeLinkList(&L, Q);
	//printLinkList(L);
	//Node *p = L;
	//while (p->next != NULL) {
	//	p = p->next; 
	//}
//	p->next = L;

	//if (isCircle(L)) {
	//	printf("L is circle!\n");
	//} else {
	//	printf("L is not a circle.\n");
	//}
	//printf("mid元素: %d\n", seekMidItem(L));
	//reversalLinkList(&L);
	//int n;
	//scanf("%d", &n);
	//printf("删除第1个元素\n");
	//Item item = deleteItemAt(&L, n);
	//printLinkList(L);
	//addItem(&L, n);
	//printLinkList(L);


	return 0;
}