那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)
一、看到這個圖標很有感覺
距離當初完成數(shù)據(jù)結構課設已經(jīng)過去很久很久了,當初由于U盤失蹤,也丟失了很多寶貴的東西,我也傷心的好久`(>﹏<)′!不過最近找到了失散多年的親兄弟,打開U盤,感概萬千!里面很多東西都是自己剛入門時的記錄,翻開一篇數(shù)據(jù)結構課設
#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項相關的系數(shù)和指數(shù):",length); scanf("%f",&q->coef);scanf("%d",&q->expn);length++;p->next=q;p=q;printf("是否繼續(xù)輸入?(是->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 《----一元稀疏多項式計數(shù)器-----》\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("輸入數(shù)值錯誤,請重新輸入:");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; }
雖然寫的有點垃圾,但對于當初的自己來說單獨完成一個東西是很有成就感的,因為這是自己不斷嘗試,不斷思考,不斷修改的結果。很懷念當初那種一個人隨便找一個地方,可以有很多天馬行空的思想(想著自己做個什么東西,雖然實現(xiàn)不了)
二、看到這些記錄很感慨
翻著翻著我看到了我當初初入門C語言時刷的題翻著翻著我看到了我當初初入門C語言時刷的題翻著翻著我看到了我當初初入門C語言時刷的題
當初由于懶記著記著就沒了當初由于懶記著記著就沒了當初由于懶記著記著就沒了
還有當初給大一培訓C語言的最后兩節(jié)的備課記錄
三、開始接觸Java
記得當初剛接觸Java時,令我最感興趣的是那很快就能做出一個東西來;后來就一直在學Java相關技術
階段1、從前端相關基礎HTML、CSS、JS、Ajax到框架Jquery、Bootstrap、Vue、Angular等
階段2、后來開始接觸服務端相關技術,最開始了解web基礎servlet、jsp、filte相關技術
階段3、慢慢又了解了Structs2、Spring、Hibernate(SSH),這個現(xiàn)在有點過時了。
當然也有現(xiàn)在的主流技術SpringMVC、Spring、Mybatis(SSM)【Mybatis Plus也干過】
階段4、SpringBoot腳手架工具也是必然的,期間又補了一下數(shù)據(jù)結構和算法,SpringData
階段5、當時不確信是否要從事服務端工作,又跑去了解了大數(shù)據(jù)相關技術,包括Hadoop生態(tài)系統(tǒng)(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
現(xiàn)在這些很多都進入了維護階段,如今阿里推出了微服務第二代產(chǎn)品,旨在取代Netflix公司的產(chǎn)品
2、Zookeeper、Consul、Nacos、Ribbon、LoadBalancer、OpenFeign、Sentinel、Spring GateWay、Dubbo
當然還有很多其他的,比如搜索引擎ElasticSearch,中間件RabbitMQ、Kafka、日志框架、Docker、k8s、Netty、MongoDB、Redis、Nginx、ZipKin、SpringSecurity、FastDFS等等。
我是一個被逼無奈走上服務端的人士!
總結
以上是生活随笔為你收集整理的那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欲从事服务端工作不懂seata?一篇小d
- 下一篇: 计算机操作系统还能这样玩?这一篇计算机操