数据结构初学者求教,自己真心不懂

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-27
数据结构初学者求教 为什么pop里的e前有“&”符号,而push里没有?

首先,push函数是将e的值压进堆栈里对吧,那就是说e这个变量本身除了提供值以外就不需要用到了,所以e的值保持原样就可以了,但是POP函数不同,pop函数是将堆栈栈顶元素弹出来,那既然弹出堆栈肯定要用个变量保存吧,就是用e来保存这个值,如果没有&的话e就不能将值带回,所以要加&,或者用指针也可以带回值。

老师只是教你,怎么打开这个软件,然后这个代码是什么意思,最后给一个简单的模型你打出来,最终听是听明白了,但是 自己操作的时候,这一步应该怎么做来着,没教过啊。
这种其实还是靠自学的,

  伪代码是一种算法描述语言。介于英语和程序语言之间。根据伪代码我们可以很容易的写出程序语言。就你所贴出的伪代码而言:void union(List &La,List Lb)中的&La,代表的意思是传引用。(传引用的好处是函数结束后的值是函数执行后的值,这个函数的作用就是将线性表La,Lb合并并将后并后的线性表传给给La。这样La在函数结束后就代表合并后的链表,如果说不用&La,而是用La,当你在主函数中调用的时候,通过输出La,你会发现La,在union这个函数执行前后的值一样,也就是没变)。线性表的长度就是你的字面理解意思。GetElem函数是已经定义的函数,这个函数是需要自己实现。e是第i个位置的值的保存值(很多时候,我们不用函数返回值来获取值,而是用参数来获取需要的值。)ListInSert也是一个函数,同样需要自己实现(这就是往线性表中插入元素)。
  伪代码一个很重要的特性就是突出重点,不需要给出一些辅助函数的定义(如这段伪代码中的GetElem、LoacteElem、ListInsert函数等都是辅助函数)。当我们根据伪代码去实现算法的时候。就需要自己实现很多东西。伪代码最大的特性就是形象化的表现出算法的思路,而不注重代码的实现。很多数据结构教科书上给出的都是伪代码。因为数据结构本身注重的就是思路。如果你有学算法之类的课程的话,就会发现他们基本都是用伪代码描述一个算法。很少去用某一种语言实现它,就是因为他们更注重的是算法思维,而非实现。
写了这么多,希望对你有所帮助吧。

数据结构:计算机存储、组织数据的方式



  • 数据结构初学者求教,自己真心不懂
    答:当我们根据伪代码去实现算法的时候。就需要自己实现很多东西。伪代码最大的特性就是形象化的表现出算法的思路,而不注重代码的实现。很多数据结构教科书上给出的都是伪代码。因为数据结构本身注重的就是思路。如果你有学算法之类的课程的话,就会发现他们基本都是用伪代码描述一个算法。很少去用某一种语...
  • 数据结构看不懂咋办?
    答:首先选择一本好的教材,严奶奶的书很经典但是对于初学者比较有难度,需要坚持着认真多看几遍,本人也是先被虐了好些遍后才渐渐入门(有条件的话看看国外教材也不错,国外的优秀教材一般讲的深入浅出,详细且通俗易懂)...一般我们都需要有辅导书帮助学习,比较有名的经典的辅导书**上搜搜都能搜到,各...
  • 一个数据结构问题,我是初学者,请高手指教,并写出其详细的步骤,谢谢!
    答:哈希地址 0 3 2 3 3 0 把以上的看成一个表格哈。。。例如,12除以4的余数是0,所以它的哈希地址是0,以此类推。。。所以要得到的四个子表应该是 (1)12,40(余数是0,即哈希地址是0)(2)空(没有余数是1的数) (3)74(余数是2) (4)23,55,63(余数是3...
  • 怎么学数据结构呀?感觉挺难的,老师讲的挺快的,加上我一直没有好好看书...
    答:2.数据结构是计算机专业最重要最基础的一门课,对于有过编程 经验的人,结合自己的编程体会,去领悟它的思想;对于初学者,捡一种自己最熟悉的语言去分析它,总之千万不要陷在语言的细节上,要高屋建瓴的去领会数据结构的思想。而且随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是...
  • 初学者如何学习数据结构?
    答:拿一些编程题来练手,由浅入深。C++课本的习题一般都很适合初学者的,要有配套答案,写完对比一下,很快就上手了。数据结构也是一样,先弄懂原理,然后试着写,不会了就仿写,默写,然后再自己写,花不了太大功夫的,然后做一些ACM的题目,比如www.poj.org,就感觉好多了 参考资料:http://zhidao....
  • C语言数据结构该怎么学,有点难,
    答:那本书里对于数据结构的内容你只需要记住那些类型就行了,比如int,float,double,long等等,其他的了解即可,不懂暂时也没关系的。 然后往后一直看,看完数组,函数了以后你就能对c语言有个大致了解了。 我建议先不要看指针,指针的功能大部分能被数组代替,指针对于初学者很难理解,所以初学达到了解的...
  • 数据结构初学者 求指教
    答:x++只执行了一次加法,因此算法的复杂度是n×(n-i);近似于n^2。
  • 做为一个初学者,如何才能学好算法呢,感觉自己很菜
    答:所谓读书百遍,其意自现,算法也一样。如果你是半路出家的程序员,看书觉得看不下去,可以试着看看视频,现在网络这么发达,网上有很多免费的精品视频,比如潭州教育老师的数据结构以及清华邓俊辉老师的数据结构都是特别好的课程。最后一种就是你对算法理论和精髓确实感兴趣,且有一定的数学功底,你可以...
  • 求教数据结构算法,红线不理解
    答:插入算法,将值为e的结点插入链表L的第i个位置上。p首先指向表头,j用来指示是第几个位置,初始0,第1个位置。结点要插入到第i个位置(j=i-1),就得首先找到第i个位置。即,将p指针从头指针开始往后移,每移一次(p=p->next;),j加1(j++;)。循环后移。p&&j<i-1的意思就是,p不为空(...
  • 数据结构初学者求教 为什么pop里的e前有“&”符号,而push里没有?
    答:首先,push函数是将e的值压进堆栈里对吧,那就是说e这个变量本身除了提供值以外就不需要用到了,所以e的值保持原样就可以了,但是POP函数不同,pop函数是将堆栈栈顶元素弹出来,那既然弹出堆栈肯定要用个变量保存吧,就是用e来保存这个值,如果没有&的话e就不能将值带回,所以要加&,或者用指针...