zoukankan      html  css  js  c++  java
  • 数据结构第2章学习小结

    1. 你对本章内容的小结
    2. 完成作业或实践时解决困难的经验分享
    3. 这段时间,你参考了哪些值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)
    4. 目前学习过程中存在的困难,待解决或待改进的问题
    5. 上次博客确定的目标达到了吗?如果没达到,请分析原因
    6. 接下来的目标

      1.线性表小结:

        (一)顺序表

            ( 1 )初始化:为顺序表L动态分配一个预定义大小的数组空间,使elem指向这段空间的基地址,将当前长度设为0

                  L.elem = new int [maxsize];

                  if ( ! L.elem) 退出,申请失败;

                  L.length = 0;

                  退出,申请成功;

              ( 2 )    取值:   按下标取值即可

            ( 3 ) 查找 :先判断指定的位置序号i是否合理,合理则一个for循环遍历

            ( 4 )插入 :第一,判断指定的位置序号 i 是否合理;

                   第二,判断顺序表的储存空间是否已满;

                   第三,将最后一个至第i个元素依次向后移动一个位置;

                   第四,插入;第五,表的长度+1

            ( 5 )删除:第一,判断指定的位置序号 i 是否合理;

                  第二,将第 i + 1 个至最后一个元素依次向前移动一个位置;

                  第三,表的长度-1

        (二) 链式表

            ( 1 )初始化:新生成节点作为头节点,头指针L指向头节点,头节点的指针域为空

                  L = new Lnode;

                  L -> next = NULL;

              ( 2 ) 取值 :顺藤摸瓜地找

                  P = L -> next ;

                  找到则赋值e=P->data;

                  设置一个计数器j,退出循环时如果指针P为空或者计数器 j 大于 i (i为要找的节点序号),说明搜索失败

            ( 3 ) 查找: 顺藤摸瓜地找,找到则返回p此时的地址值,没找到则返回NULL

            ( 4 )插入:第一,找到该节点的前一个节点ai-1,并用指针p指向该节点;

                   第二,生成新节点;

                   第三,新节点数据域置为e;

                     第四,新节点指针域指向ai,

                     第五,节点p的指针域指向新节点

               代码: ListInsert(单链表L , 第i个节点 , 插入的数据e(放在第i-1和第i个节点之间))

                  {

                     int  *p = L ;int j = 0; 

                     while(p && ( j < i - 1)  )

                      {p=p->next;++j;}

                     if( !p || j > i - 1) return 错误;

                     s = new Lnode;//新建节点

                     s -> data = e;//数据域置为e

                     s ->next = p -> next; //新节点指针域指向ai

                     p -> next = s;

                     return 成功;

                  }          

             ( 5 )删除:一:找到ai-1; 二:找到ai+1, 三:ai-1节点的指针域指向ai+1 四:释放ai空间

       2.完成作业或实践时解决困难的经验分享

        看书+百度

      3.这段时间,你参考了哪些值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)

        只参考了课本

      4.目前学习过程中存在的困难,待解决或待改进的问题

        string a;(写在函数以外)

        char b[1000];(写在函数以外)

        getline(cin,a);

        cin.getline(b,1000);

        输入相同的数据,a和b的内容有何不同?

      5.上次博客确定的目标达到了吗?如果没达到,请分析原因

        上次博客没有确定目标(该博客为第一篇)

      6.接下来的目标

         A完天梯T1的题

  • 相关阅读:
    mysql 加入列,改动列,删除列。
    C语言中的static 具体分析
    [Python网络编程]gevent httpclient以及网页编码
    iOS学习之 plist文件的读写
    数据库设计中的14个技巧
    最简单的基于FFMPEG的封装格式转换器(无编解码)
    一次重要的爱情婚姻抉择,您怎么看?
    2014年到期的myeclipse5.5.1注冊码
    24点经典算法
    使用val()方法设置表单中的默认选中项
  • 原文地址:https://www.cnblogs.com/Remilia-Scarlet/p/10534548.html
Copyright © 2011-2022 走看看