• 链表的逆制


          要求:用单链表来实现逆制? 

    注明:之前用的顺序表实现过逆制,如今用链式结构来实现逆制

    #include<stdio.h>
    #include<stdlib.h>
    
    typedef struct Node
    {
    	int data;
    	struct Node *next;
    }Node;
    
    void Init(Node *phead)//初始化链表
    {
    	phead->data=0;
    	phead->next=NULL;
    }
    
    void Creat(Node *phead)//创建链表
    {
    	int data;
    	Node *p=phead;
    	printf("请输入,并以-1结束输入:");
    	while(scanf("%d",&data) && data != -1)
    	{
    		Node *q=(Node*)malloc(sizeof(Node));
    		q->data=data;
    		q->next=NULL;
    		p->next=q;
    		p=q;
    	}	
    }
    
    void sort(Node *phead)//逆制
    {
    	if(phead==NULL || phead->next==NULL)
    		return;
    	Node *p=phead->next;
    	Node *q=p->next;
    	Node *t=(Node *)malloc(sizeof(Node));
    	if(t==NULL)
    		exit(-1);
    	while(q!=NULL)//从链表的第二个数開始,一直取一个数在链表中头插
    	{
    		t=q->next;
    		q->next=phead->next;
    		phead->next=q;
    		q=t;
    	}
    	p->next=NULL;
    }
    void show(Node *phead)//显示链表
    {
    	Node *p=phead->next;
    	while(p!=NULL)
    	{
    		printf("%d ",p->data);
    		p=p->next;
    	}
    	printf("
    ");
    }
    void main()
    {
    	Node p;
    	Init(&p);
    	Creat(&p);
    	printf("逆制前:
    ");
    	show(&p);
    	sort(&p);
    	printf("逆制后:
    ");
    	show(&p);
    }


  • 相关阅读:
    PYTOHN1.day14
    PYTHON1.day13
    PYTHON1.day12
    PYTHON1.day11(n)
    PYTHON1.day10
    PYTHON1.day09
    PYTHON1.day08
    同步代码块 synchronized
    守护线程
    休眠线程
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5095097.html
Copyright © 2020-2023  润新知