zoukankan      html  css  js  c++  java
  • 非有序的静态查找表的查找某个元素的算法

    #include <stdio.h>
    #define MAX 10
    #define LEN 4
    
    typedef struct  {
    	int id;
    	char name[MAX];
    }STU;//语句1 
    
    typedef struct {
    
    	STU * elem;
    	int length;
    }SSTable; 
    STU * search(STU * ptr,int size,int id);//语句2
    //语句2应该在语句1之前因为语句2使用了STU.
    int search_seq(SSTable st,int id);
    
    
    int main(void)
    {
    	STU stu[LEN]={{0,""},{1,"sss"},{2,"aaa"},{3,"ddd"}};
    	int k=3;
    	SSTable st={stu,LEN};
    	
    	/*if(search(stu,3,2)!= NULL)
    		printf("%d,%s\n",search(stu,3,2)->id,search(stu,3,2)->name);
    	else
    		printf("no record!\n");*/
    	/*	
    	if(search_seq(st,k)!= NULL)
    		printf("%d,%s\n",search_seq(st,k)->id,search_seq(st,k)->name);
    	else
    		printf("no record!\n");*/
    	if(search_seq(st,k)==0)
    		printf("no record!\n");
    	else
    	printf("%d,%s\n",stu[search_seq(st,k)].id,stu[search_seq(st,k)].name);
    
    
    	
    	
    	return 0;
    }
    
    STU * search(STU * ptr,int size,int id)
    {
    	for(int i=0;i<size;i++)
    	{
    		if(ptr->id==id)
    			return ptr;
    		ptr++;
    		if(i==size-1)
    			return NULL;
    
    	}
    
    	
    }
    int  search_seq(SSTable st,int id)
    {
    	/*
    	for(int i=(st.length-1);i>=0;i--)
    	{
    		if(st.elem->id==id)
    			return st.elem;
    		st.elem++;
    		if(i==0)
    			return NULL;
    	}
    	*/
       
        st.elem[0].id=id;
    	for(int i=st.length-1;id!=st.elem[i].id;--i)
    		continue ;
    		return i;
    		
    
    
    	   
    
    
    
    }
    

      

  • 相关阅读:
    JAVA中循环删除list中元素的方法总结
    弹力设计总结
    CPU飚高问题排查基本步骤
    缓存数据库更新策略
    .Module高内聚低耦合的思考
    javascript回调函数及推论
    Laravel Autoloader模块分析
    Laravel Event模块分析
    数据操作分层设计
    Discuzx2开发标准流程
  • 原文地址:https://www.cnblogs.com/jzhao/p/3065489.html
Copyright © 2011-2022 走看看