数据结构【查找篇】
前言

为什么突然想学算法了?
> 用较为“官方”的语言讲,是因为算法对计算机科学的所有分支都非常重要。 在绝大多数的计算机科学分支领域中,要想完成任何实质性的工作,理解算法的基础知识并掌握与算法密切相关的数据结构知识是必不可少的。
> 但从实际而言,是因为当下竞争压力逐渐增大,无论走哪一条路,都不免需要一些相对丰富的算法知识,是故,便产生了一个寒假巩固速成算法的计划,可能对于像我这种算法竞赛小白而言,几乎很难,但我仍然还是想尝试一下,毕竟,梦想还是要有的,万一实现了呢?~( ̄▽ ̄~)~

为什么选择码蹄集作为刷题软件?
码蹄集,是在全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC) 指导下建设的,其依托全国各大名校计算机系和清华大学出版社等单位的强大资源,旨在为计算机学习爱好者提供全面和权威的计算机习题。
.
目录
一、顺序查找
#include<iostream>
using namespace std;
#define Maxsize 100
typedef struct{
//查找表的数据结构(顺序表)
int *elem; //动态数组基址
int Tablelen; //表的长度
int MaxSize; //表的最大长度
}SSTable;
//顺序查找
int Search_Seq(SSTable ST,int key){
int i;
for(i=0;i<ST.Tablelen && ST.elem[i]!=key;++i);
//查找功能,则返回元素下标;查找失败,则返回-1
return i==ST.Tablelen? -1:i;
}
//顺序查找(哨兵)
int Search_SeqShaoBing(SSTable ST,int key){
ST.elem[0]=key; //哨兵
int i;
for(i=ST.Tablelen;ST.elem[i]!=key;--i);//从后往前找
return i; //查找成功,则返回元素下标;查找失败,则返回0
}
//初始化顺序表
//基本操作——初始化一个程序表(动态分配)
void InitSSTable(SSTable &ST){
//用malloc函数申请一片连续的存储空间
ST.elem =(int*)malloc(Maxsize * sizeof(int));
ST.Tablelen=0;
ST.MaxSize=Maxsize;
}
//增加动态数组的长度
void IncreaseSize(SSTable &ST,int len){
int *p=ST.elem;
ST.elem=new int(Maxsize+len);
for(int i=0;i<ST.Tablelen;i++){
ST.elem[i]=p<

最低0.47元/天 解锁文章
681

被折叠的 条评论
为什么被折叠?



