12月11日 数据结构 周一

数据结构
12月11日    周一 




问题:
单链表
栈的应用
斐波那契数列
字符串逆转
进制转换
括号匹配
表达式求值


循环队列


四大基础
数据结构与算法
组成原理
操作系统
计算机网络


新知识:


感悟:

作者:王奕然
链接:https://www.zhihu.com/question/51499031/answer/126177638
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


我觉得学习任何东西都要先有个目的或者场景,然后你才能很好的切入你想学习的东西,很好的进入到场景中,体会你要学的东西。而不是因为在网上问问这个东西重要或者不重要就去学或者排挤他。没有人会问吃饭重要不重要,为什么。因为饿!不吃饭会没劲,会死。为了活下去我们就要吃饭。正因为饥饿,头晕,没精神这种场景,我们才有了明确的吃饭这种行动,才能更好的很熟练的掌握吃饭这种行为。吃多少饭,吃什么饭,你也能在这个场景中得到掌握。(吃饱吃好。。。)    在回到学习数据结构上来看。首先,要有个目的或者场景。比如你在一家公司,老板说这个代码速度太慢,客户反映说不友好,赶紧来解决(现在很饿,驱动自己找解决办法)。于是你要探索如何更合理的使用数据结构,来优化查询速度(用吃饭来解决饥饿问题)。然后找书或者查资料。即便书都是砖头书,资料茫茫多,但是你的目的明确,我就是要提高一下查询速度,看看那种数据结构更适合,你会很容易的在书中筛选到你想要的资料(即使菜品很多,也不会把时间浪费在吃什么上,赶紧点个盖饭充饥),然后去试验,问题就解决了,你体会到在提高查询速率的时候,用那种数据结构更好(吃饱了,以后就选这个饭馆,做的真快)。这个时候你会对数据结构的用处有了一个更感性的认识,知道数据结构的重要性,会更重视对他的学习,未雨绸缪(挨饿太难受了,下回底提前吃啊!),比在论坛问重不重要有用的多(别再问我吃饭重不重要了,吃饭不积极,脑子有xx)。    如果你没有场景或者目的,只是某个导师或者大牛告诉你数据结构很重要!于是你买了N多本数据结构的书(因为大神说它很重要),然后学个1年半载的(因为他很重要),发现学不懂,资料茫茫多,书籍茫茫多,似乎每本书都是必看的,于是花了很多时间一本一本的看,但是书看了好几本还是不太明白。甚至都不知道为什么要这么学它。。。(因为它很重要?)最后感慨软件行业是真他妈难啊。逐渐失去对软件的兴趣,毕业后说不定就改行了。

出错点:    scanf("%f",price)不能用%.2f
循环for(i=q.front;i<q.rear;i++)
a[i]不能用a[q.front]
直线队列
/* Note:Your choice is C IDE */
#include "stdio.h"
#define MAXSIZE 5//定义宏常量
struct goods//商品结构体
{
int num;
char name[100];
float price;
char des[100];
};
struct queue//定义结构体
{
struct goods a[MAXSIZE];
int rear;
int front;
};
struct queue q;//结构体变量
void one()
{
if(q.rear==MAXSIZE-1)
{
printf("溢出\n");//输出
}
else
{
printf("请输入入队的商品\n");//标题
printf("\t请输入商品编号:");//标题
scanf("%d",&q.a[q.rear].num);
printf("\t请输入商品名称:");//标题
scanf("%s",q.a[q.rear].name);
printf("\t请输入商品单价:");//标题
scanf("%f",&q.a[q.rear].price);
printf("\t请输入商品描述:");//标题
scanf("%s",q.a[q.rear].des);
printf("\n");
printf("入队成功!\n");

q.rear++;//自增
}
}
void two()
{
if(q.front==q.rear)
{
printf("队空,没有元素\n");//输出
}
else
{
printf("商品编号%d,商品名称:%s,商品单价:%.2f,商品描述:%s",q.a[q.front].num,q.a[q.front].name,q.a[q.front].price,q.a[q.front].des);//输出

q.front++;//自增
}
}
void three()
{
int i;

for(i=q.front;i<q.rear;i++)//循环
{
printf("商品编号%d,商品名称:%s,商品单价:%.2f,商品描述:%s\n",q.a[i].num,q.a[i].name,q.a[i].price,q.a[i].des);//输出
}
}
void main()
{
int b;

    q.rear=q.front=0;//赋初值
    
    while(1)
    {
    printf("\n===============================\n");//标题
    printf("1.入队\n");//功能1
    printf("2.出队\n");//功能2
    printf("3.打印队头到队尾所有商品\n");//功能3
    printf("0.退出\n");//功能0
    printf("===============================\n");//标题
    scanf("%d",&b);
   
    switch(b)
    {
    case 1:one();//调用
    break;
    case 2:two();//调用
    break;
    case 3:three();//调用
    break;
    case 0:exit(0);//调用
    break;
    default:printf("输入编号有误!\n");//错误
    }
    }
}

你若用心读,越读越伤心



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值