zoukankan      html  css  js  c++  java
  • 静态链表

    #include<stdio.h>
    #define MAXSIZE 100
    typedef struct 
    {
    	int data;
    	int cur;
    }sqllist;
    void init(sqllist p[])        //数组空间初始化为链表 ,p[0].cur为头指针 
    {
    	int i;
    	for(i=0;i<MAXSIZE-1;i++)
    	{
    		p[i].cur=i+1; 
    	}
    	p[MAXSIZE-1].cur=0;
    }
    
    int Malloc_p(sqllist p[])   //分配空闲节点,返回空闲节点的下标 
    {
    	int i;
    	i=p[0].cur;
    	if(i) p[0].cur=p[i].cur; 
    	return i;
    } 
    
    void delete_p(sqllist p[],int i)  //回收第i个元素 到空闲链表,一般是头指针后一个节点 
    {
    	p[i].cur=p[0].cur;
    	p[0].cur=i;
    } 
    
    int difference(sqllist p[])
    {
    	int i,s,end,m,n;
    	init(p);
    	s=Malloc_p(p);      //头结点
    	end=s;             //指向最后一个节点
    	scanf("%d%d",&m,&n);
    	for(i=1;i<=m;i++)
    	{
    		int t=Malloc_p(p);
    		scanf("%d",&p[t].data);
    		p[end].cur=t;
    		end=t;
    	} 
    	p[end].cur=0;
    	int b,j,k,u;
    	for(i=1;i<=n;i++)
    	{
    		scanf("%d",&b);
    		k=p[s].cur;
    		u=s;
    		while(k!=p[end].cur && p[k].data!=b)
    		{
    			u=k;
    			k=p[k].cur;
    		}
    		if(k==p[end].cur)    //不存在元素 
    		{
    			int t=Malloc_p(p);
    			p[t].data=b;
    			p[t].cur=p[end].cur;
    			p[end].cur=t;
    		}                
    		else             //若存在,则删除之 
    		{
    			p[u].cur=p[k].cur;
    			delete_p(p,k);
    			if(k==end) end=u;
    		}  
    	}
    	return s;
    }
    void print_sl(sqllist p[],int start){
    	int t=p[start].cur;
    	while (t)
    	{
    		printf("%d ",p[t].data);
    		t=p[t].cur;
    	}
    	printf("
    ");
    }
    int main(void)
    {
    	int start,i;
    	sqllist t[MAXSIZE];
    	start=difference(t);
    	print_sl(t,start);
    	//for(i=2;i<9;i++)
    	//printf("%d ",t[i]);
    } 

    非学无以广才,非志无以成学! 【Magic_chao

  • 相关阅读:
    mysql 查询优化 ~ select count 知多少
    mongodb 案例 ~ 经典故障案例
    printk 驱动调试
    21天学通C++学习笔记(七):函数
    OPC UA
    MQTT
    分库分表
    水平、垂直权限问题(横向越权与纵向越权)
    数据库中的行转列和列转行
    面试知识点
  • 原文地址:https://www.cnblogs.com/logo-88/p/9649217.html
Copyright © 2011-2022 走看看