zoukankan      html  css  js  c++  java
  • 链表的逆制

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

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

    #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);
    }


  • 相关阅读:
    hash联接算法
    Nginx实现WEB故障转移以及重定向
    MSSQL分区表
    SSO示例
    MSMQ 跨服务器读写队列
    利用Heartbeat完成Mysql主-主同步
    采用heartbeat做Redis的主从切换
    Redis的RDB AOF DATABASE
    Redis初试
    简单线性回归
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5095097.html
Copyright © 2011-2022 走看看