zoukankan      html  css  js  c++  java
  • 链表插入排序 链表指针实现

    #include<stdlib.h>
    #include<stdio.h>
    
    typedef struct node* link;  //链接
    struct node
    {
    	int item;
    	link next;  
    };//节点
    int main(void)
    {
    	struct node heada, headb;
        link t, u, x, a=&heada, b=&headb;
    	b->next=NULL;
        int N=9;
       
        t=a;
        //头节点a指向t的首节点
        
        for(short i=0; i<N; i++)
        {
        	t->next = malloc(sizeof *t);
    	    t=t->next; 
    	    t->item= rand()%1000;
        }
        t->next=NULL;
        //初始化链表为0-999的随机数,结尾指向NULL
        
        
        for(t=a->next; t!=NULL; t=u)
        {
        	u=t->next; 
        	//将t的下一个节点地址保存在u
        	//循环结束时将t指向t的下一个节点
    	    for( x=b; x->next!=NULL; x=x->next)
    			if(x->next->item > t->item) break;
    			//判断b的下一个节点值是否大于当前a的节点
    			//如果成立立即跳出循环进行排序
    		//
    		t->next = x->next; 
    		//将t的下一个节点指向 b的下一个节点
    		//a的首节点指向NULL
    		x->next=t; //将b的下一个节点指向当前t节点
    	}
    //	排列这些节点使遍历链表按照顺序出现
    	b=b->next;
    	a=a->next;
    	//使a&b指向首节点而不是头节点
    	for(short i=0; i<N; i++)
    	{
    		printf("%d ", b->item);
    		b=b->next;
    	}
    	putchar('
    ');
    	for(short i=0; i<N; i++)
    	{
    		printf("%d ", a->item);
    		a=a->next;
    	}
    	//分别打印a,b
    	
    	return 0;
    }

  • 相关阅读:
    字符串,列表,集合,字典,元组方法
    内置对象方法
    学生管理系统(2)
    1207
    PSP总结
    1130
    1123
    1118
    1109
    评论
  • 原文地址:https://www.cnblogs.com/WALLACE-S-BOOK/p/9732296.html
Copyright © 2011-2022 走看看