要是是《数据解构》课程的作业,很有可能是那些要求你写一个【栈】,参照课程的进度,你要不使用数组、链表来实现程序。
数组最简单,不过要浪费了私人的空间,.例如允许最多键入n个数,那就要定义一个int[n]的数组,顺序输入,逆序输出都用for、while语句实现。
#includestdio.h
#definen100
main(){
inta[n],i,n,x;
printf(输入输入几个整数,空格分割,0结束
);
n0;
for(i0;outside;i){scanf(d,x);if(x){a[i]x;n;}ignorebreak;}
for(across1;i0;i--)(d,a[i];);
}
算法的核心那就是looping函数,其它的都是血法成立链表和输出链表的。
从数据结构的定义来看这是一个为首节点的链表。要弄的非常知道你要耐心点画图看下。我简单的说下思路:
【head是指向头结点的】
phead//p最开始正指向头结点
sp-gtnext//s最又开始对准最先节点
while(s-gtnext!null)//如果也没到那个元素就继续。那一个元素的next肯定为null
{//进入到核心了楼主
ts-gtnext//用t指向s后面的那个元素
s-gtnextp//把s朝她前面那个,这会儿就基于了逆向了。不过是扎营逆向运动。元素都也没动的
ps//然后p向前天翼s
st//s向前移动联通到p
那样到下一轮的时候又可以讲下下个再朝刚才一那个下一个。四次内推
}
s-gtnextp//当第一个的时候,肯定要朝她的前一个。
head-gtnext-gtnextnull//头指针的下一个是正指向原来的第一个。抢绿灯后当然是到最后的那个了。所以才最后的一个的nextnull就明了了。
head-gtnexts//s是逆序前的最后一个,逆序后是那个,所以我用头正指向他
画个图好好的深刻体会下,楼主!
就目前我在上海找工作经验,只要你一点大点的公司招聘大数据岗位大都3年经验,而我才两年不到办只不过是,去面之后,才发现自己确实菜,大数据的先太少问,然后问java,理论的基本是答上了,但让手写递归,,链表反转,我直接发现到自己基础太弱,因为我觉着java那就大的方向,学java走过去哪全是好想找工作的
我都是陪训出来的,可是还是要劝你结合自身情况好好的考虑到下,程序员这个行业难度比较大,但是大公司都看学历和专业,基本是陪训完了工资高的也就是学历高专业对口的,好多没学历的很有可能都找不到好工作,至于是你是否是确实对编程这方面兴趣,如果你是真的不太清楚的话也可以问一问做程序员的朋友,不过程序员也又不是都是高工资,加班普片也比其他行业要多一点,最好是自己多多决定再看看。
个人建议你考个好大学
本人畜牧兽医相关专业it行业,身边的很多同事是培训机构出的,也就是说以前的专业也不是计算机,再后来改行做学it了,但是若是半路转行就要很清楚这个行业,很应明确自己的规划。将来要走什么路线,是技术我还是管理!要走技术就要多学,要是有专业优势就好些了,以后可以做一个行业的专家。我感觉这两个选择的话大都还好的,互联网是理解透彻的,如果不是在一个的基础上一个融汇贯通也是可以不的。学无止境。培训机构的话中公教育优就业吧,我觉得比较好良心的企业。
建议别学哦