程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(4)

那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)

发布于2021-06-12 12:48     阅读(532)     评论(0)     点赞(28)     收藏(4)


一、看到这个图标很有感觉

在这里插入图片描述

距离当初完成数据结构课设已经过去很久很久了,当初由于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等等。

我是一个被逼无奈走上服务端的人士!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原文链接:https://blog.csdn.net/Kevinnsm/article/details/117691511



所属网站分类: 技术文章 > 博客

作者:怎么没有鱼儿上钩呢

链接:http://www.javaheidong.com/blog/article/221796/b68bd05c6fb2bc09a1bb/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

28 0
收藏该文
已收藏

评论内容:(最多支持255个字符)