那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)
Posted IT挖掘机y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)相关的知识,希望对你有一定的参考价值。
一、看到这个图标很有感觉
距离当初完成数据结构课设已经过去很久很久了,当初由于U盘失踪,也丢失了很多宝贵的东西,我也伤心的好久`(>﹏<)′!不过最近找到了失散多年的亲兄弟,打开U盘,感概万千!里面很多东西都是自己刚入门时的记录,翻开一篇数据结构课设
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct PolyLNode{
float coef;
int expn;
struct PolyLNode*next;
}Poly,*PolyList;
Poly* InitList()
{
Poly*L=(Poly*)malloc(sizeof(PolyList));
L->coef=-1;
L->expn=-1;
L->next=NULL;
return L;
}
void InputPoly(Poly *L)
{
int flag=0;
Poly *p=L;
int length=1;
while(true)
{
loop1:
Poly *q=(Poly*)malloc(sizeof(Poly));
printf("请分别输入第%d项相关的系数和指数:",length);
scanf("%f",&q->coef);
scanf("%d",&q->expn);
length++;
p->next=q;
p=q;
printf("是否继续输入?(是->1,否->0)");
loop2:
scanf("%d",&flag);
if(flag==1)
{
goto loop1;
}
if(flag==0)
{
break;
}
else
{
printf("输入有误,请重新输入!");
goto loop2;
}
}
p->next=NULL;
}
void AdditionList(PolyList p,PolyList q,PolyList *lc)
{
PolyList pl,ql,sl;
(*lc)=(PolyList)malloc(sizeof(Poly));
(*lc)->next=NULL;
sl=(*lc);
pl=p->next;
ql=q->next;
loop5:
while((pl!=NULL)&&(ql!=NULL))
{
if(pl->expn>ql->expn)
{
Poly *v=(Poly*)malloc(sizeof(Poly));
v->coef=pl->coef;
v->expn=pl->expn;
sl->next=v;
sl=v;
sl->next=NULL;
pl=pl->next;
}
else if(pl->expn==ql->expn)
{
int sum=0;
sum=pl->coef+ql->coef;
if(sum==0)
{
pl=pl->next;
ql=ql->next;
goto loop5;
}
if(sum!=0)
{
Poly *x=(Poly*)malloc(sizeof(Poly));
x->coef=sum;
x->expn=pl->expn;
sl->next=x;
sl=x;
sl->next=NULL;
pl=pl->next;
ql=ql->next;
}
}
else
{
Poly *t=(Poly*)malloc(sizeof(Poly));
t->coef=ql->coef;
t->expn=ql->expn;
sl->next=t;
sl=t;
sl->next=NULL;
ql=ql->next;
}
}
while(pl)
{
Poly *m=(Poly*)malloc(sizeof(Poly));
m->coef=pl->coef;
m->expn=pl->expn;
sl->next=m;
sl=m;
sl->next=NULL;
pl=pl->next;
}
while(ql)
{
Poly *n=(Poly*)malloc(sizeof(Poly));
n->coef=ql->coef;
n->expn=ql->expn;
sl->next=n;
sl=n;
sl->next=NULL;
ql=ql->next;
}
}
void SubtractionList(PolyList p,PolyList q,PolyList *lc)
{
PolyList pl,ql,sl;
(*lc)=(PolyList)malloc(sizeof(Poly));
(*lc)->next=NULL;
sl=(*lc);
pl=p->next;
ql=q->next;
loop:
while((pl!=NULL)&&(ql!=NULL))
{
if(pl->expn>ql->expn)
{
Poly *v=(Poly*)malloc(sizeof(Poly));
v->coef=pl->coef;
v->expn=pl->expn;
sl->next=v;
sl=v;
sl->next=NULL;
pl=pl->next;
}
else if(pl->expn==ql->expn)
{
pl=pl->next;
ql=ql->next;
goto loop;
}
else
{
Poly *t=(Poly*)malloc(sizeof(Poly));
t->coef=-(ql->coef);
t->expn=ql->expn;
sl->next=t;
sl=t;
sl->next=NULL;
ql=ql->next;
}
}
while(pl)
{
Poly *m=(Poly*)malloc(sizeof(Poly));
m->coef=pl->coef;
m->expn=pl->expn;
sl->next=m;
sl=m;
sl->next=NULL;
pl=pl->next;
}
while(ql)
{
Poly *n=(Poly*)malloc(sizeof(Poly));
n->coef=-(ql->coef);
n->expn=ql->expn;
sl->next=n;
sl=n;
sl->next=NULL;
ql=ql->next;
}
}
void sortList(Poly*s)
{
Poly *v;
Poly *k;
int maxCoef=0,maxExpn=0;
int zhishu=0,xishu=0;
for(v=s->next;v->next!=NULL;v=v->next)
{
maxExpn=v->expn;
for(k=v->next;k!=NULL;k=k->next)
{
if(maxExpn<k->expn)
{
zhishu=v->expn;
xishu=v->coef;
v->coef=k->coef;
v->expn=k->expn;
k->coef=xishu;
k->expn=zhishu;
}
}
}
}
void PrintPoly(Poly *s)
{
Poly*v=s->next;
printf("%.1fx^%d",v->coef,v->expn);
v=v->next;
while(v)
{
if(v->coef>0)
{
printf("+%.1fx^%d",v->coef,v->expn);
}
else
{
printf("-%.1fx^%d",v->coef,v->expn);
}
v=v->next;
}
}
void destory(Poly*s)
{
Poly*v=s->next;
Poly*k;
while(v)
{
k=v;
v=v->next;
free(k);
}
free(s);
}
void menu()
{
printf("\\n");
printf("\\t\\t\\t\\t 《----一元稀疏多项式计数器-----》\\n");
system("color 2");
printf("\\n");
printf("\\t\\t\\t\\t******************************************\\n");
printf("\\t\\t\\t\\t##\\t\\t\\t\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t1.输入多项式a\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t2.输入多项式b\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t3.输出a+b的值\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t4.输出a-b的值\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t5.退出 \\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t##\\t\\t\\t\\t\\t##");
printf("\\n");
printf("\\t\\t\\t\\t******************************************\\n");
printf("\\n");
}
int main()
{
PolyList L,S,K;
while(true)
{
menu();
int c=1;
loop3:
printf("\\t\\t\\t\\t请选择(%d-5):",c);
loop4:
int a;
scanf("%d",&a);
if(a<c||a>5)
{
printf("输入数值错误,请重新输入:");
goto loop4;
}
switch(a)
{
case 1:
L=InitList();
InputPoly(L);
sortList(L);
c++;
goto loop3;
case 2:
S=InitList();
InputPoly(S);
sortList(S);
c++;
goto loop3;
case 3:
AdditionList(L,S,&K);
destory(L);
destory(S);
printf("a+b的结果为:");
PrintPoly(K);
destory(K);
break;
case 4:
SubtractionList(L,S,&K);
destory(L);
destory(S);
printf("a-b的结果为:");
PrintPoly(K);
destory(K);
break;
case 5:
return 0;
}
}
return 0;
}
虽然写的有点垃圾,但对于当初的自己来说单独完成一个东西是很有成就感的,因为这是自己不断尝试,不断思考,不断修改的结果。很怀念当初那种一个人随便找一个地方,可以有很多天马行空的思想(想着自己做个什么东西,虽然实现不了)
二、看到这些记录很感慨
翻
着
翻
着
我
看
到
了
我
当
初
初
入
门
C
语
言
时
刷
的
题
翻着翻着我看到了我当初初入门C语言时刷的题
翻着翻着我看到了我当初初入门C语言时刷的题
当
初
由
于
懒
记
着
记
着
就
没
了
当初由于懒记着记着就没了
当初由于懒记着记着就没了
还有当初给大一培训C语言的最后两节的备课记录
三、开始接触Java
记得当初刚接触Java时,令我最感兴趣的是那很快就能做出一个东西来;后来就一直在学Java相关技术
阶段1、从前端相关基础html、CSS、JS、Ajax到框架Jquery、Bootstrap、Vue、Angular等
阶段2、后来开始接触服务端相关技术,最开始了解web基础servlet、jsp、filte相关技术
阶段3、慢慢又了解了Structs2、Spring、Hibernate(SSH),这个现在有点过时了。
当然也有现在的主流技术SpringMVC、Spring、Mybatis(SSM)【Mybatis Plus也干过】
阶段4、SpringBoot脚手架工具也是必然的,期间又补了一下数据结构和算法,SpringData
阶段5、当时不确信是否要从事服务端工作,又跑去了解了大数据相关技术,包括Hadoop生态系统(Zookeeper、Flink、Hbase、Hive、HDFS、Kafka、Spark)
阶段6、确信自己从事服务端工作,开始进军微服务;
1、Netflix Eureka、Netflix Ribbon、Netflix Feign、Netflix Hystrix、Netflix zuul、Spring Cloud config、Spring Cloud Bus
现在这些很多都进入了维护阶段,如今阿里推出了微服务第二代产品,旨在取代Netflix公司的产品
2、Zookeeper、Consul、Nacos、Ribbon、LoadBalancer、OpenFeign、Sentinel、Spring GateWay、Dubbo
当然还有很多其他的,比如搜索引擎ElasticSearch,中间件RabbitMQ、Kafka、日志框架、Docker、k8s、Netty、MongoDB、Redis、nginx、ZipKin、SpringSecurity、FastDFS等等。
我是一个被逼无奈走上服务端的人士!
以上是关于那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)的主要内容,如果未能解决你的问题,请参考以下文章
新店公布 可直接拍! NIKE NSW TCH FLC WR AOP 满满回忆 RMB158包 16年新款!