当前位置: 首页 > news >正文

厚街做网站公司/搜索引擎优化工作

厚街做网站公司,搜索引擎优化工作,wordpress 喜欢 按钮,汽车网站建设公司无界面的通讯录,能存储联系人姓名和号码,当然没有保存到文件,因为只是个数据结构的练手。用到了链表的一些操作,能按关键字(姓名和号码都可以)模糊查找,并且显示的时候是按查找的次数来显示&…

无界面的通讯录,能存储联系人姓名和号码,当然没有保存到文件,因为只是个数据结构的练手。用到了链表的一些操作,能按关键字(姓名和号码都可以)模糊查找,并且显示的时候是按查找的次数来显示,查找的字符串匹配算法用的是KMP算法,纯属杀鸡用牛刀,初始化的时候还用到了递归,三百多行代码。


/**
@lkxiaolou	通讯录
**/ #include<stdio.h>
#include<string.h>
#include<malloc.h>/**定义节点
**/
typedef struct p
{char *name;			//姓名char *number;		//号码int times;			//搜索次数struct p *next;
}person,*lperson;//创建通讯录指针 
lperson booklist=NULL;
//创建模糊查找链表指针
lperson bookselected=NULL;/*
**	函数声明
*/
lperson addperson(lperson book,char *name,char *number,int times);	//插入节点
void view(lperson L);												//遍历整个通讯录
lperson select(lperson book,char *key);								//搜索符合条件的节点
int surtold(char *s,char *b);										//关键字匹配的朴素算法
lperson change(lperson ced);										//搜索后改变链表顺序
int init();															//初始化
int Index_KMP(char *s,char *p,int pos,int next[]);					//关键字匹配的KMP算法
void Get_next(char *p,int next[]);									//KMP算法的next函数
int surtnew(char *s,char *b);										//关键字匹配的KMP算法
void deleteall();													//清空通讯录/**增加记录 
**/
lperson addperson(lperson book,char *name,char *number,int times)
{//构造插入的节点 lperson s;s=(lperson)malloc(sizeof(person));s->name=(char*)malloc(sizeof(name));s->number=(char*)malloc(sizeof(number));s->times=(int)malloc(sizeof(int));s->times=times;strcpy(s->name,name);strcpy(s->number,number);s->next=NULL; if(book==NULL){book=s;s->next=NULL; return book;}else{lperson p=book;while(p->next!=NULL){p=p->next;}p->next=s;return book;}
} /**清空通讯录
**/
void deleteall()
{free(booklist);booklist=NULL;
}/**显示全部记录 
**/
void view(lperson L)
{lperson p=L;printf("姓名\t号码\t\t搜索次数\n");while(p!=NULL){printf("%s\t%s\t%d\n",p->name,p->number,p->times);p=p->next;}
}/**模糊查找
**/
lperson select(lperson book,char *key)
{lperson p=book;while(p!=NULL){if(surtnew(p->name,key)||surtnew(p->number,key)){p->times++;bookselected=addperson(bookselected,p->name,p->number,p->times);booklist=change(p);}p=p->next;}return bookselected;
}/**KMP算法next函数
**/
void Get_next(char *p,int next[])  
{  int i,j,slen;  slen=strlen(p);i=0;  next[0]=-1;j=-1;  while(i<slen) {  if(j==-1||p[i]==p[j]){++i;++j;next[i]=j;}  else j=next[j];  }  
}
/**KMP算法查找字符串
**/
int Index_KMP(char *s,char *p,int pos,int next[])  
{  int i,j,slen,plen;  i=pos-1;  j=-1;  slen=strlen(s);  plen=strlen(p);  while(i<slen&&j<plen)  {  if(j==-1||s[i]==p[j]){++i;++j;}  else j=next[j];  }  if(j>=plen) return 1;  else return 0;  
}  /**朴素的字符串匹配
**/
int surtold(char *s,char *b)
{int i,j,lens,lenb,flag,itemp;lens=strlen(s);lenb=strlen(b);if(lens<lenb) return 0;else{for(i=0;i<=lens-lenb;i++){flag=0;for(j=0;j<lenb;j++){if(j==0) itemp=i;if(s[itemp]==b[j]) {flag++;itemp++;}else break;if(flag==lenb) return 1;}}return 0;}
}/**KMP算法的字符串匹配
**/
int surtnew(char *s,char *b)
{int next[1000];Get_next(b,next);return Index_KMP(s,b,0,next);
}/**重新按照搜索次数排列链表传入参数ced为待改变顺序节点
**/
lperson change(lperson ced)
{lperson head=booklist;lperson newlist=NULL;//ced的times最大if(ced->times>=head->times){newlist=addperson(newlist,ced->name,ced->number,ced->times);while(head!=NULL){if(head!=ced)newlist=addperson(newlist,head->name,head->number,head->times);head=head->next;}}//ced的times不是最大else{while(head->times>ced->times){if(head!=ced)newlist=addperson(newlist,head->name,head->number,head->times);head=head->next;}newlist=addperson(newlist,ced->name,ced->number,ced->times);while(head!=NULL){if(head!=ced)newlist=addperson(newlist,head->name,head->number,head->times);head=head->next;}}return newlist;
}//初始化界面
int init()
{
int f;
char newname[80];
char newnum[80];
char key[80];
printf("-------------通讯录---------------\n");
printf("请选择:\n");
printf("1.插入一条记录\n");
printf("2.查看所有记录\n");
printf("3.查找\n");
printf("4.清空通讯录\n"); 
printf("5.退出\n");scanf("%d",&f);
switch(f){case 1:printf("请输入姓名和电话号码(用空格隔开)\n");scanf("%s %s",newname,newnum);booklist=addperson(booklist,newname,newnum,0);		getchar();init();break;case 2:view(booklist);getchar();init();break;case 3:printf("请输入关键字\n");scanf("%s",key);bookselected=select(booklist,key);if(bookselected==NULL){printf("未查找到相应记录!\n");}else{view(bookselected);}	free(bookselected);bookselected=NULL;getchar();init();break;case 4:deleteall();getchar();init();break;case 5:break;default:printf("请正确输入\n");getchar();init();break;}
return 1;
}//入口主函数 
int main()
{//测试数据booklist=addperson(booklist,"lk","18567106987",0);booklist=addperson(booklist,"yz","17659990000",0);booklist=addperson(booklist,"dk","18967106894",0);booklist=addperson(booklist,"xx","19879999922",0);init();return 1;
}


http://www.lbrq.cn/news/1251955.html

相关文章:

  • 网站建设方案怎么做/广州网站快速排名
  • 网站怎么做交易平台/seo上海培训
  • 中国商标注册网查询网官网/seo服务 文库
  • b2c网上支付是什么意思/湖南seo优化报价
  • 外贸生意做哪个网站好/流量神器
  • 南昌做网站公司/seo点石论坛
  • 益阳北京网站建设/郑州客串seo
  • 如何建设网站方便后期维护/360提交入口网址
  • 大连网站制作.net/查询网站收录
  • 网站建设属于哪类工作/登封网站设计
  • 网站建设与维护的论述题/湖南竞价优化哪家好
  • 后缀int网站/app开发公司有哪些
  • 珠海网站建设贵公司/新品上市怎么推广词
  • wordpress 中文客户端/seo公司推荐
  • 郑州新闻网站/北京、广州最新发布
  • 临沂网站建设公司/2345网址导航官方网站
  • 效果图哪个网站好/兰州seo优化公司
  • 网站中下滑菜单怎么做/泰安网站建设
  • 龙岗网站设计效果/黄页引流推广
  • 空气能空调如何做网站/线在科技成都网站推广公司
  • 织梦视频网站源码/网络营销岗位招聘信息
  • 字体设计网站大全/英语培训机构前十名
  • 河北住房和城乡建设委员会网站/装修公司网络推广方案
  • 青岛 茶叶网站建设/营销策略的思路
  • 国外域名备案/杭州seo全网营销
  • 在工行网站上如何做现金理财/最新腾讯新闻
  • 网站建设公司未来发展方向/电商运营入门基础知识
  • 湘潭专业网站建设湘潭振企专业/百度拍照搜题
  • 重庆綦江网站制作公司电话/什么叫优化
  • 上海建设人才网站/成都网站seo公司
  • 嵌入式C语言编程:策略模式、状态模式和状态机的应用
  • TCP的拥塞控制
  • 无人机开发分享——基于行为树的无人机集群机载自主决策算法框架搭建及开发
  • JVM(Java Virtual Machine,Java 虚拟机)超详细总结
  • 配置Mybatis环境
  • C++-异常