数据结构示例一

发布 2021-05-29 06:37:28 阅读 2490

例1:有n个人围成一圈,顺序排号。从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(用指针)

例2:有n个人围成一圈,顺序排号。从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(用结构)

例1程序:*个循环报数逢3退出求最后一人是第几号*/#include<>

#define nmax 50/*定义最多人数为50人*/void main()

int i,k,m,n,num[nmax],*p;

/ printf("请输入人数n:")

/ scanf("%d",&n);

n=13;p=num;

for(i=0;ip+i)=i+1;/*以1至n为序给每个人编号*/i=0;/*i为每次循环时计数变量*/

k=0;/*k为按1,2,3报数时的计数变量*/m=0;/*m为退出人数*/

while(mif(*(p+i)!=0) k++;

if(k==3)

p+i)=0;/*退出的人编号置0*/

k=0;m++;

i++;if(i==n)i=0;/*报数到尾后i恢复为0*/while(*p==0)p++;

printf("%d个人中最后留下的是第%d号。",n,*p);

例2程序。#include <>

#define n 13

struct person

int number;

int nextp;

link[n+1];

void main()

int i,count,h;

*建立队列*/

for (i=1;i<=n;i++)

if(i==n)

link[i].nextp=1;

elselink[i].nextp=i+1;

link[i].number=i;

printf("");

count=0;

h=n;printf("出圈成员及顺序");

while(count

printf("%6d",link[h].number);

link[h].number=0;

count++;

printf(" 最后的成员是");

for(i=1;i<=n;i++)

if(link[i].number)

printf("%6d",link[i].number);

C数据结构C示例

目录。1.表达式 2 语句 2 圆括号。方括号。花括号。1 计算两点间的距离平方。a点坐标 x1,y1 和b点坐标 x2,y2 x1 x2 x1 x2 y1 y2 y1 y2 注 c 中的乘号是 没有平方符号,因此没有 x1 x2 2,而应该写作 x1 x2 x1 x2 2 数学表达式的正确表达 1...

数据结构常用算法数据结构算法

void union list la,list lb union void mergelist list la,list lb,list lc else while i la len while j lb len mergelist status initlist sq sqlist l elemt...

数据结构2019级数据结构大作业

2011级数据结构大作业。1 公园导游图。给出一张某公园的导游图,用图的顶点表示各个景点 景点个数大于等于30 每个景点有属性值 h,t,c 其中h表示游览完成这个顶点给游客带来的happiness,t表示游览这个景点需要的时间,c表示游览这个景点需要的费用,顶点之间的边表示路径 边具有属性值w,表...