网站建设资讯

NEWS

网站建设资讯

c语言顺序查找的主函数 c语言排序查找

求用C语言写这个顺序表的主函数

完整代码:

成都创新互联公司专注于企业成都全网营销推广、网站重做改版、翔安网站定制设计、自适应品牌网站建设、HTML5商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为翔安等各大城市提供网站开发制作服务。

#include stdio.h

#include stdlib.h

#include windows.h

#define MAXSIZE 100

typedef int datatype;

typedef struct{

datatype a[MAXSIZE];

int size;

}sequence_list;

void init(sequence_list *slt)

{

slt-size=0;

}

void append(sequence_list *slt,datatype x)

{

if(slt-size==MAXSIZE)

{

  printf("顺序表是满的");

exit(1);

}

slt-a[slt-size]=x;

slt-size=slt-size+1;

}

void display (sequence_list slt)

{

int i;

if(!slt.size)

printf("顺序表是空的");

else

for(i=0;islt.size;i++)

printf("%5d",slt.a[i]);

printf("\n");

}

int empty (sequence_list *slt)

{

memset(slt,0,sizeof(sequence_list));

return(slt-size==0?1:0);

}

int find (sequence_list slt,datatype x)

{

int i=0;

while(islt.size slt.a[i]!=x)

i++;

return(islt.size ? i:-1);

}

datatype get(sequence_list slt,int i)

{

if(i0||i=slt.size)

{

printf("\n指定位置的节点不存在");

exit(1);

}

else

  return slt.a[i];

}

void insert(sequence_list *slt,datatype x,int position)

{

int i;

if(slt-size==MAXSIZE)

{

printf("\n顺序表是满的,无法插入");

exit(1);

}

if(position0||positionslt-size)

{

printf("\n指定的插入位置不存在");

exit(1);

}

for(i=slt-size;iposition;i--)

slt-a[i]=slt-a[i-1];

slt-a[position]=x;

slt-size++;

}

void dele(sequence_list *slt,int position)

{

int i;

if(slt-size==0)

{

printf("\n顺序表是空的,无法删除");

exit(1);

}

if(position0||position=slt-size)

{

printf("\n指定的删除位置不存在");

exit(1);

}

for(i=position;islt-size-1;i++)

  slt-a[i]=slt-a[i+1];

  slt-size--;

}

int main()

{

sequence_list slt;

bool exit_flag=false;

int fun_num=1;

datatype data=0;

int i=0;

printf("1.初始化  2.增加节点  3.显示  4.清空  5.查找\n6.获取节点 7.插入节点  8.删除节点  9.退出  0.清屏\n");

while (!exit_flag)

{

printf("请选择功能:\n");

scanf("%d",fun_num);

switch (fun_num)

{

case 1:

init(slt);

break;

case 2:

printf("请输入数据:\n");

scanf("%d",data);

append(slt,data);

break;

case 3:

display (slt);

break;

case 4:

empty (slt);

break;

case 5:

printf("请输入查找的数据:\n");

scanf("%d",data);

printf("查找到的数据位置为:%d",find (slt,data));

printf("\n");

break;

case 6:

printf("请输入数据位置:\n");

scanf("%d",i);

printf("该位置的数据为:%d",get(slt,i));

printf("\n");

break;

case 7:

printf("请输入插入节点位置:\n");

scanf("%d",i);

printf("请输入插入节点数据:\n");

scanf("%d",data);

insert(slt,data,i);

break;

case 8:

printf("请输入删除节点位置:\n");

scanf("%d",i);

dele(slt,i);

break;

case 9:

exit_flag=true;

break;

case 0:

system("CLS");

printf("1.初始化  2.增加节点  3.显示  4.清空  5.查找\n6.获取节点 7.插入节点  8.删除节点  9.退出  0.清屏\n");

break;

default:

break;

}

}

return 0;

}

效果如下图,调试通过,所有功能好使

顺序查找线性表的主函数怎么写?

假设前面定义过链表p了,待查找的是n。

q=p;

while (q-next!=null *q!=n)

q=q-next;

if (*q!=n) printf("no suitable value")

c语言顺序查找

在这个程序中,输入的10个数字,是以空格 隔开的。如果想用逗号隔开,会比较麻烦。

既然上面是空格隔开的,下面倒数第三行printf("%d in %d",key,i);key和i用空格隔开不用逗号是不行的。这是程序语句规定的,各输出项之间必须要用逗号分隔。这个与上面所说的运行时输入各数据用什么分隔(它是可以指定的)是两码事。


文章名称:c语言顺序查找的主函数 c语言排序查找
链接URL:http://njwzjz.com/article/dosjsoo.html