首页 > 代码库 > 数据结构的查找总结

数据结构的查找总结


本文为原创,转载使用请注明来至:http://blog.csdn.net/j903829182/article/details/38036873

/*
1.查找是在一个数据元素集合中查找关键字等于某个给定关键字数据元素的过程。
2.查找主要有静态查找,动态查找和哈希查找。
3.静态查找是指在数据元素集合中查找是否存在关键字等于某个给定关键字的数据元素。
4.动态查找除包括静态查找的要求,还包括在查找过程中同时插入数据元素集合中不存在的数据元素,或者从数据元素集合中
  删除已存在的某个数据元素的要求。即如果在某个数据元素集合中进行了动态查找,则该数据元素集合可能会被改变。
5.哈希表是一种既适用于静态查找问题,又适用于动态查找问题,并且查找效率非常高的解决查找问题的存储结构。
*/
#include<stdio.h>
#include<malloc.h>
#define MaxSize 100
#define true 1
#define false 0
typedef int KeyType;
typedef struct{
	KeyType key;
}DataType;

typedef struct{
DataType list[MaxSize];
int size;
}SeqList;
//初始化
void ListInitiate(SeqList *L){
  L->size=0;//设置初始元素的个数为0
}
//求当前数据元素个数
int  GetListLength(SeqList L){
   return L.size;//返回元素的个数
}
//插入数据元素
int ListInsert(SeqList *L,int i,DataType data){


int j;//定义变量j
if(L->size>=MaxSize){
   printf("顺序表已满,无法插入!!\n");
return false;//返回
}


if(i<0||i>L->size+1){
  printf("输入的参数不合法,不能进行插入!!\n");
  return false;//返回
}else{
    
for(j=L->size;j>=i;j--){
     L->list[j]=L->list[j-1];//移动元素
}
    L->list[i-1]=data;//赋值
L->size++;//元素个数加一
return true;
}
}
//删除数据元素
int DeleteList(SeqList *L,int i,DataType *data){
int j=0;
    if(L->size==0){
printf("线性表为空,不能执行删除操作!!\n");
return false;
}


if(i<0||i>L->size){


printf("删除的位置i不对,不能够进行删除!!\n");
return false;
}else{
*data=http://www.mamicode.com/L->list[i-1];>




运行结果:










数据结构的查找总结