• 循环链表


    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    typedef int Status;
    typedef float ElemType;
    typedef struct LXNode{
    	ElemType data;
    	struct LXNode * next;
    }LXNode,*LXLinkList;
    //函数的声明
    Status Creat_LX(LXLinkList &head);//链表的创建 
    void Print_LX(LXLinkList head);//链表元素的输出 
    Status Insert_LX(LXLinkList head,Status n);//链表的插入 
    Status Delete_LX(LXLinkList head,Status n);//链表的删除
    void Lunion(LXLinkList &La,LXLinkList &Lb);//俩个表的合并 
    
    Status Creat_LX(LXLinkList &head)//链表的创建
    {
    	LXLinkList p,q;
    	head=(LXLinkList)malloc(sizeof(LXNode));
    	p=head;
    	
    	Status i=0,j=0;
    	printf("请输入你想要创建链表元素的个数:
    ");
    	scanf("%d",&j);
    	for(i=0;i<j;i++)
    	{
    		q=(LXLinkList)malloc(sizeof(LXNode));
    		scanf("%f",&q->data);
    		p->next=q;
    		p=q;
    	}
    	p->next=head;
    }
    void Print_LX(LXLinkList head)//链表元素的输出 
    {
    	LXLinkList p;
    	p=head->next;
    	while(p!=head)
    	{
    		printf("%f ",p->data);
    		p=p->next;
    	}
    }
    Status Insert_LX(LXLinkList head,Status n)//链表的插入 
    {
    	LXLinkList p,s;
    	p=head;
    	Status i=1;
    	while(i<n)
    	{
    		i++;
    		p=p->next;
    	} 
    	s=(LXLinkList)malloc(sizeof(LXNode));
    	scanf("%f",&s->data);
    	s->next=p->next;
    	p->next=s;
    	return 0;
    } 
    Status Delete_LX(LXLinkList head,Status n)//链表的删除
    {
    	LXLinkList p,q;
    	Status i=1;
    	p=head->next;
    	while(p!=head&&i<n-1)
    	{
    		i++;
    		p=p->next;
    	}
    	q=p->next;//删除元素的地址
    	p->next=q->next;
    	free(q); 
    } 
    void Lunion(LXLinkList &La,LXLinkList &Lb)//俩个表的合并 
    {
    	LXLinkList p,q;
    	p=La->next; 
    	q=Lb->next; 
    	while(p!=La)
    	{
    		if(p->next==La)
    		{
    			break;	
    		}
    		p=p->next;
    	}
    	while(q!=Lb)
    	{
    		if(q->next==Lb)
    		{
    			break;
    		}
    		q=q->next;
    	}
    	p->next=Lb->next;
    	q->next=La;	
    }
    int main(int argc, char** argv) 
    {
    	LXLinkList head;
    	
    	//测试程序不规范 
    	Creat_LX(head);//创建链表 
    	Print_LX(head);//显示链表 
    	printf("
    ");
    	printf("------------------------------
    ");
    	Insert_LX(head,1);//链表元素的插入 
    	Print_LX(head);
    	printf("
    ");
    	printf("------------------------------
    ");
    	Delete_LX(head,2);
    	Print_LX(head);
    	return 0;
    }
    别废话,拿你代码给我看。
  • 相关阅读:
    Bootstrap UI层收藏介绍
    你为什么离开上家公司?三大经典面试问题剖析
    浅谈常用的Web安全技术手段
    C#中yield关键字理解
    中小型研发团队架构实践三要点(转自原携程架构师张辉清)
    你确实应该学习并使用的 10 个 C# 特性
    ASP.NET MVC 异步Excel数据选择导出
    表格中控制tr的display:block在火狐中显示错乱的解决方法
    切图笔记
    表单验证jquery.validate
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707580.html
Copyright © 2020-2023  润新知