查找

您所在的位置:网站首页 查找的步骤是什么 查找

查找

2024-06-15 08:57| 来源: 网络整理| 查看: 265

静态查找:

1.查询某个特定的数据元素是否在查找表中;

2.检索某个特定的数据元素的各种属性。

动态查找:

1.在查找表中插入一个元素;

2.从查找表中删去某个数据元素。

(需要借助于顺序表)

//SeqList.h #ifndef _SEQLIST_H_ #define _SEQLIST_H_ typedef void SeqList; typedef void SeqListNode; SeqList* SeqList_Create(int capacity); void SeqList_Destroy(SeqList* list); int SeqList_Length(SeqList* list); int SeqList_Capacity(SeqList* list); void SeqList_Clear(SeqList* list); int SeqList_Insert(SeqList* list,SeqListNode* node,int pos); SeqListNode* SeqList_Get(SeqList* list,int pos); SeqListNode* SeqList_Delete(SeqList* list,int pos); #endif //SeqList.c #include "SeqList.h" #include typedef unsigned int TSeqListNode; typedef struct _tag_SeqList { int capacity; int length; TSeqListNode* node; }TSeqList; SeqList* SeqList_Create(int capacity) { TSeqList* ret = NULL; if(capacity > 0) { ret = (TSeqList*)malloc(sizeof(TSeqList)+sizeof(TSeqListNode)*capacity); } if(ret != NULL) { ret->capacity = capacity; ret->length = 0; ret->node = (TSeqListNode*)(ret+1); } return ret; } void SeqList_Destroy(SeqList* list) { free(list); } int SeqList_Length(SeqList* list) { int ret = -1; TSeqList* sList = (TSeqList*)list; if(sList!=NULL) { ret = sList->length; } return ret; } int SeqList_Capacity(SeqList* list) { int ret = -1; TSeqList* sList = (TSeqList*)list; if(sList != NULL) { ret = sList->capacity; } return ret; } void SeqList_Clear(SeqList* list) { TSeqList* sList = (TSeqList*)list; if(sList != NULL) { sList->length = 0; } } int SeqList_Insert(SeqList* list,SeqListNode* node,int pos) { int ret = 0; TSeqList* sList = (TSeqList*)list; ret = (sList != NULL)&&(node != NULL)&&(pos >= 0)&&(sList->length+1 capacity); int i = 0; if( ret ) { if(pos>sList->length) { pos = sList->length; } for(i=sList->length;i>pos;i--) { sList->node[i] = sList->node[i-1]; } sList->node[i] = (TSeqListNode)node; sList->length++; } return ret; } SeqListNode* SeqList_Get(SeqList* list,int pos) { TSeqList* sList = (TSeqList*)list; TSeqListNode* ret = NULL; if((sList!=NULL)&&(pos>=0)&&(poslength)) { ret = (TSeqListNode*)sList->node[pos]; } return ret; } SeqListNode* SeqList_Delete(SeqList* list,int pos) { TSeqList* sList = (TSeqList*)list; TSeqListNode* ret = SeqList_Get(list,pos); int i = 0; if(ret != NULL) { for(i=pos;ilength;i++) { sList->node[i] = sList->node[i+1]; } sList->length--; } return ret; } //main.c #include #include #include #include "SeqList.h" /* run this program using the console pauser or add your own getch, system("pause") or input loop */ #define SIZE 20 void print_array(int a[],int len) { int i = 0; for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3