12月6日 数据结构 周三
来源:互联网 发布:化工公司工艺软件 编辑:程序博客网 时间:2024/05/16 16:56
数据结构
12月6日 周三
问题:
单链表
递归斐波那契数列
栈
/* Note:Your choice is C IDE */
#include "stdio.h"
#define M 5
struct stack
{
int a[M];
int top;
};
struct stack s;
int x,e;
void main()
{
printf("1.入栈 2.出栈\n");
s.top=-1;
while(1)
{
printf("请选择功能编号");
scanf("%d",&x);
switch(x)
{
case 1:
if(s.top==M-1)
{
printf("栈满!\n");
}
else
{
printf("请输入入栈元素");
scanf("%d",&e);
s.a[++s.top]=e;//先加后压 s.top++;s.a[s.top]=e
printf("入栈成功!\n");
}
break;
case 2:
if(s.top==-1)
{
printf("空栈!\n");
}
else
{
printf("%d \n",s.a[s.top--]);
}
break;
}
}
}
递归
/* Note:Your choice is C IDE */
#include "stdio.h"
one(int e)//递归求和
{
if(e==1)
{
return 1;
}
else
{
return e+one(e-1);
}
}
two(int e)//n的阶乘
{
if(e==0)
{
return 1;
}
else
{
return e*two(e-1);
}
}
three(int e,int k)//n的k次幂
{
if(k==0)
{
return 1;
}
else
{
return e*three(e,k-1);
}
}
four(int e)//斐波那契数列
{
if(e==1||e==2)
{
return 1;
}
else
{
return four(e-1)+four(e-2);[color]
}
}
void main()
{
int x=1,e,k;//定义变量
while(x!=0)//循环
{
printf("\n");
printf("\t\t1.递归求和\n");//功能1
printf("\t\t2.n的阶乘\n");//功能2
printf("\t\t3.n的k次幂\n");//功能3
printf("\t\t4.递归斐波那契数列\n");//功能4
printf("\t\t0.退出\n");//退出
printf("请输入功能编号");//提示用户
scanf("%d",&x);//用户输入
switch(x)//选择
{
case 1:
printf("请输入一个值");
scanf("%d",&e);
printf("1-%d的和为%d\n\n",e,one(e));//调用与输出
break;
case 2:
printf("请输入一个值");
scanf("%d",&e);
printf("%d的阶乘为%d",e,two(e));//调用与输出
break;
case 3:
printf("请输入底数和指数并以空格分隔");
scanf("%d %d",&e,&k);
printf("%d的%d次幂为%d",e,k,three(e,k));//调用与输出
break;
case 4:
printf("请输入月份");
scanf("%d",&e);
for(k=1;k<=e;k++)//循环
{
printf("%d ",four(k));//调用与输出
}
break;
case 0://退出
break;
default:printf("输入的功能编号有误!");//编号错误
}
}
}
新知识:
感悟:重点关注基础 基础永远不会改变 只有根扎的深 树才能长的高
队列
/* Note:Your choice is C IDE */
#include "stdio.h"
#define M 5//宏常量
struct queue//结构体
{
int a[M];
int front;
int rear;
};
struct queue q;//结构体变量
int b,i;
void main()
{
printf("1.入队 2.出队 3.打印\n");//提示
q.front=q.rear=0;//赋初值
while(1)//循环
{
printf("\n请输入功能编号");//提示
scanf("%d",&b);//输入
switch(b)//选择
{
case 1:
if(q.rear==M)//判断是否排满
{
printf("队列已满\n");
}
else
{
printf("请输入入队元素");
scanf("%d",&q.a[q.rear]);//输入
q.rear++;
}
break;
case 2:
if(q.front==q.rear)//判断
{
printf("队列为空\n");
}
else
{
printf("出队元素为%d",q.a[q.front]);
q.front++;
}
break;
case 3:
for(i=q.front;i<q.rear;i++)//判断
{
printf("%d ",q.a[i]);
}
break;
default:printf("编号不正确!");//编号错误
}
}
}
如果你不能成为别人生命中的礼物,就不要走进别人的生活。
12月6日 周三
问题:
单链表
递归斐波那契数列
栈
/* Note:Your choice is C IDE */
#include "stdio.h"
#define M 5
struct stack
{
int a[M];
int top;
};
struct stack s;
int x,e;
void main()
{
printf("1.入栈 2.出栈\n");
s.top=-1;
while(1)
{
printf("请选择功能编号");
scanf("%d",&x);
switch(x)
{
case 1:
if(s.top==M-1)
{
printf("栈满!\n");
}
else
{
printf("请输入入栈元素");
scanf("%d",&e);
s.a[++s.top]=e;//先加后压 s.top++;s.a[s.top]=e
printf("入栈成功!\n");
}
break;
case 2:
if(s.top==-1)
{
printf("空栈!\n");
}
else
{
printf("%d \n",s.a[s.top--]);
}
break;
}
}
}
递归
/* Note:Your choice is C IDE */
#include "stdio.h"
one(int e)//递归求和
{
if(e==1)
{
return 1;
}
else
{
return e+one(e-1);
}
}
two(int e)//n的阶乘
{
if(e==0)
{
return 1;
}
else
{
return e*two(e-1);
}
}
three(int e,int k)//n的k次幂
{
if(k==0)
{
return 1;
}
else
{
return e*three(e,k-1);
}
}
four(int e)//斐波那契数列
{
if(e==1||e==2)
{
return 1;
}
else
{
return four(e-1)+four(e-2);[color]
}
}
void main()
{
int x=1,e,k;//定义变量
while(x!=0)//循环
{
printf("\n");
printf("\t\t1.递归求和\n");//功能1
printf("\t\t2.n的阶乘\n");//功能2
printf("\t\t3.n的k次幂\n");//功能3
printf("\t\t4.递归斐波那契数列\n");//功能4
printf("\t\t0.退出\n");//退出
printf("请输入功能编号");//提示用户
scanf("%d",&x);//用户输入
switch(x)//选择
{
case 1:
printf("请输入一个值");
scanf("%d",&e);
printf("1-%d的和为%d\n\n",e,one(e));//调用与输出
break;
case 2:
printf("请输入一个值");
scanf("%d",&e);
printf("%d的阶乘为%d",e,two(e));//调用与输出
break;
case 3:
printf("请输入底数和指数并以空格分隔");
scanf("%d %d",&e,&k);
printf("%d的%d次幂为%d",e,k,three(e,k));//调用与输出
break;
case 4:
printf("请输入月份");
scanf("%d",&e);
for(k=1;k<=e;k++)//循环
{
printf("%d ",four(k));//调用与输出
}
break;
case 0://退出
break;
default:printf("输入的功能编号有误!");//编号错误
}
}
}
新知识:
感悟:重点关注基础 基础永远不会改变 只有根扎的深 树才能长的高
队列
/* Note:Your choice is C IDE */
#include "stdio.h"
#define M 5//宏常量
struct queue//结构体
{
int a[M];
int front;
int rear;
};
struct queue q;//结构体变量
int b,i;
void main()
{
printf("1.入队 2.出队 3.打印\n");//提示
q.front=q.rear=0;//赋初值
while(1)//循环
{
printf("\n请输入功能编号");//提示
scanf("%d",&b);//输入
switch(b)//选择
{
case 1:
if(q.rear==M)//判断是否排满
{
printf("队列已满\n");
}
else
{
printf("请输入入队元素");
scanf("%d",&q.a[q.rear]);//输入
q.rear++;
}
break;
case 2:
if(q.front==q.rear)//判断
{
printf("队列为空\n");
}
else
{
printf("出队元素为%d",q.a[q.front]);
q.front++;
}
break;
case 3:
for(i=q.front;i<q.rear;i++)//判断
{
printf("%d ",q.a[i]);
}
break;
default:printf("编号不正确!");//编号错误
}
}
}
如果你不能成为别人生命中的礼物,就不要走进别人的生活。
阅读全文
0 0
- 12月6日 数据结构 周三
- 12月13日 数据结构 周三
- 12月20日 数据结构 周三
- 2007年5月9日(周三)
- 2014年10月15日周三
- 八周三次课(12月13日) 15.1 多线程实例 15.2 多线程锁
- 2012年3月28日 周三 v$lock
- 二周三次课(10月25日)
- 三周三次课(11月1日)
- 时间很快的,周三了都(2005年8月31日,周三)
- 12月12日 数据结构 周二
- 数据结构课程设计-12月27日
- 数据结构课程设计-12月28日
- 数据结构课程设计-12月29日
- 12月4日 数据结构 周一
- 12月5日 数据结构 周二
- 12月7日 数据结构 周四
- 12月8日 数据结构 周五
- JAVA 构造方法 静态方法
- 用pdfmake生成pdf中文文档
- 清澄A1028. 选择计算
- Python(1) ———— while循环
- js小白普及(二) 对下拉框的操作
- 12月6日 数据结构 周三
- jQuery AJAX
- Python学习笔记----装饰器
- Java中的正则表达式
- Java服务端推送和web端推送——GoEasy免费推送服务
- threadlocal原理及常用应用场景2
- LOJ6002 「网络流 24 题
- react踩坑不完全指北(1)
- Python,列表