当前位置:首页 > 计算机理论 > 数据结构课后习题答案
《数据结构:C语言描述(第2版)》电子书封面

数据结构:C语言描述(第2版)

  • 发布时间:2021年04月07日 15:08:01
  • 作者:耿国华
  • 出版:西安电子科技大学出版社
  • 大小:2.89 MB
  • 类别:数据结构资料
  • 格式:PDF
  • 评分:9.5

    数据结构:C语言描述(第2版) 课后答案

      给大家带来的是关于数据结构相关的课后习题答案,介绍了关于数据结构、C语言方面的内容,本书是由西安电子科技大学出版社出版,资源格式为PDF,大小2.89 MB,耿国华编写,目前高等院校数据结构类教材综合评分为:8.2分

      Tags:数据结构 C语言 

      《数据结构:C语言描述(第2版)》内容介绍

      本书主要包括数据结构的基本概念、基本的数据结构(线性表、栈和队列、串、数组与广义表、树、图)和基本技术(查找方法与排序方法)三个部分。本书除重点介绍了数据的组织技术外,还贯穿了程序设计中应掌握的技术,如参数传递技术、动态处理的指针技术、数组技术、递归技术与队列技术等。另外,本书给出了许多经典的查找与排序算法,为读者继续拓展思路提供线索。    本书是在版的基础上修订而成的,内容丰富,概念清晰,技术实用,同时还配有大量的例题、习题和实习题。本书将读者熟悉的标准 C 语言作为算法描述的语言,采用了面向对象的方法来讲述数据构中的技术,这种描述体系也是本书特色之一。    本书既可作为大专院校计算机等专业数据结构课程的教材,也可供从事计算机开发和应用的工程技术人员学习和参考。

      目录

      • 第1章 绪论 
      • 1.1 什么是数据结构(定义) 
      • 1.2 数据结构的内容 
      • 1.3 算法 
      • 1.4 算法描述的工具 
      • 1.5 对算法作性能评价 
      • 1.6 关于数据结构的学习 
      • 习题  实习题
      • 第2章 线性表 
      • 2.1 线性表的概念及运算 
      •    2.1.1 线性表的逻辑结构 
      •    2.1.2 线性表的抽象数据类型定义 
      • 2.2 线性表的顺序存储   
      • 2.2.1 线性表的顺序存储  
      •   2.2.2 线性表顺序存储结构上的基本运算 
      • 2.3 线性表的链式存储   
      • 2.3.1 单链表 
      •    2.3.2 单链表上的基本运算
      •     2.3.3 循环链表   
      • 2.3.4 双向链表  
      •   2.3.5 静态链表   
      • 2.3.6 顺序表和链表的比较 
      • 2.4 一元多项式的表示及相加
      •   习题  实习题
      • 第3章 限定性线表——栈和队列
      •   3.1 栈   
      • 3.1.1 栈的定义   
      • 3.1.2 栈的表示和实现  
      •   3.1.3 栈的应用举例  
      •   3.1.4 栈与递归的实现 
      • 3.2 队列  
      •   3.2.1 队列的定义
      •     3.2.2 队列的表示和实现  
      •   3.2.3 队列的应用举例 
      • 习题  实习题
      • 第4章 串 
      • 4.1 串的定义 
      • 4.2 抽象数据类型串的实现
      •     4.2.1 定长顺序串
      •     4.2.2 堆串   
      • 4.2.3 块链串
      •   4.3 串的应用举例:文本编辑  习
      • 题  实习题
      • 第5章 数组和广义表 
      • 5.1 数组的定义和运算 
      • 5.2 数组的顺序存储和实现 
      • 5.3 特殊矩阵的压缩存储   
      • 5.3.1 三角矩阵   
      • 5.3.2 带状矩阵 
      •    5.3.3 稀疏矩阵
      •   5.4 广义表 
      • 习题  实习题
      • 第6章 树和二叉树
      •   6.1 树的概念与定义 
      • 6.2 二叉树 
      •    6.2.1 二叉树的定义与基本操作 
      •    6.2.2 二叉树的性质 
      •    6.2.3 二叉树的存储结构 
      • 6.3 二叉树的遍历与线索化
      •     6.3.1 二叉树的遍历   
      • 6.3.2 基于栈的递归消除  
      •   6.3.3 遍历算法应用   
      • 6.3.4 线索二叉树 
      • 6.4 树、森林和二叉树的关系  
      •   6.4.1 树的存储结构  
      •   6.4.2 树、森林的遍历   
      • 6.4.3 树与森林的遍历
      •   6.5 哈夫曼树及其应用   
      • 6.5.1 哈夫曼树  
      •   6.5.2 哈夫曼编码   
      • 6.5.3 哈夫曼码算法的实现 
      • 习题  实习题
      • 第7章 图
      • 第8章 查找
      • 第9章 内部排序
      • 第10章 外部排序附录
      • 数据结构试题选编
      • 参考文献

      笔记精选

      Java数据结构之双端链表原理与实现方法

      本文实例讲述了Java数据结构之双端链表原理与实现方法。分享给大家供大家参考,具体如下:

      一、概述:

      1、什么时双端链表:

      链表中保持这对最后一个连点引用的链表

      2、从头部插入

      要对链表进行判断,如果为空则设置尾节点为新添加的节点

      3、从尾部进行插入

      如果链表为空,则直接设置头节点为新添加的节点,否则设置尾节点的后一个节点为新添加的节点

      4、从头部删除

      判断节点是否有下个节点,如果没有则设置节点为null

      二、具体实现

      /**
       * @描述     头尾相接的链表
       * @项目名称   Java_DataStruct
       * @包名     com.struct.linklist
       * @类名     LinkList
       * @author   chenlin
       * @date    2010年6月26日 上午8:00:28
       * @version   1.0
       */
      public class FirstLastLinkList {
        //头
        private Node first;
        //尾
        private Node last;
        public FirstLastLinkList(){
          first = null;
          last = null;
        }
        /**
         * 插入数据
         * @param value
         */
        public void insertFirst(long value){
          Node newNode = new Node(value);
          if (first == null) {
            last = newNode;
          }else {
            //把first节点往下移动
            newNode.next = first;
          }
          //把插入的节点作为新的节点
          first = newNode;
        }
        /**
         * 插入数据
         * @param value
         */
        public void insertLast(long value){
          Node newNode = new Node(value);
          if (first == null) {
            first = newNode;
          }else {
            last.next = newNode;
          }
          //把最后个节点设置为最新的节点
          last = newNode;
        }
        public boolean isEmpty(){
          return first == null;
        }
        /**
         * 删除头节点
         * @param value
         * @return
         */
        public Node deleteFirst(){
          if (first == null) {
            throw new RuntimeException("链表数据不存在");
          }
          if (first.next == null) {
            last = null;
          }
          Node temp = first;
          first = temp.next;
          return temp;
        }
        public Node deleteByKey(long key){
          Node current = first;
          Node last = first;
          while(current.data != key){
            if (current.next == null) {
              System.out.println("没找到节点");
              return null;
            }
            last = current;
            current = current.next;
          }
          if (current == first) {
            //return deleteFirst();
            //指向下个就表示删除第一个
            first = first.next;
          }else {
            last.next = current.next;
          }
          return current;
        }
        /**
         * 显示所有的数据
         */
        public void display(){
          if (first == null) {
            //throw new RuntimeException("链表数据不存在");
            return;
          }
          Node current = first;
          while(current != null){
            current.display();
            current = current.next;
          }
          System.out.println("---------------");
        }
        /**
         * 查找节点1
         * @param value
         * @return
         */
        public Node findByValue(long value){
          Node current = first;
          while(current != null){
            if (current.data != value) {
              current = current.next;
            }else {
              break;
            }
          }
          if (current == null) {
            System.out.println("没找到");
            return null;
          }
          return current;
        }
        /**
         * 查找节点2
         *
         * @param key
         * @return
         */
        public Node findByKey(long key) {
          Node current = first;
          while (current.data != key) {
            if (current.next == null) {
              System.out.println("没找到");
              return null;
            }
            current = current.next;
          }
          return current;
        }
        /**
         * 根据索引查找对应的值
         * @param position
         * @return
         */
        public Node findByPosition(int position){
          Node current = first;
          //为什么是position - 1,因为要使用遍历,让current指向下一个, 所以position - 1的下个node就是要找的值
          for (int i = 0; i < position - 1 ; i++) {
            current = current.next;
          }
          return current;
        }
        public static void main(String[] args) {
          FirstLastLinkList linkList = new FirstLastLinkList();
          linkList.insertFirst(21);
          linkList.insertFirst(22);
          linkList.insertFirst(23);
          linkList.insertLast(24);
          linkList.insertLast(25);
          linkList.insertLast(26);
          linkList.insertLast(27);
          linkList.display();
          System.out.println("---查找-------------------------------------");
          linkList.findByKey(25).display();
          System.out.println("--删除first-------------------------------------");
          //linkList.deleteFirst().display();
          ///linkList.deleteFirst().display();
          //linkList.deleteFirst().display();
          //linkList.deleteFirst().display();
          System.out.println("-删除指定值---------------------------------------");
          linkList.deleteByKey(27).display();
          linkList.deleteByKey(21).display();
          System.out.println("----------------------------------------");
          linkList.display();
        }
      }
      
      

      更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

      希望本文所述对大家java程序设计有所帮助。

      以上就是本次介绍的数据结构:C语言描述(第2版)书的全部相关内容,课后答案及相关习题附件可以在下方下载,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:数据结构教程(第3版)

      下一篇:没有了

      查看更多
      数据结构 相关资源
      数据结构与算法分析:C语言描述
      数据结构与算法分析:C语言描述 PDF 含答案高清版

      书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构

      立即下载
      10套数据结构期末考试题目(含答案) PDF 超清版

      数据结构10套考试题目+答案解析,我们的期末考试题目基本都是从里面出的,全部刷一遍保证85+,分享给学弟学妹们 四、阅读算法(每题分,共分) 是不带头结点的单链表的头指针 请回答下列问题: ()说明语句的功能; 查询链表的尾结点 )说明语句组的功能; 将第一个结点链接到链表的尾部,作为新的尾结点 ()设链表表示的线性表为( )写出算法执行后的返回值所表示的线性 表 返回的线性表为( 该算法的功能是: 递归地后序遍历链式存储的二叉树 五、算法填空

      立即下载
      数据结构与算法分析:Java语言描述
      数据结构与算法分析:Java语言描述 PDF 第3版

      数据结构:Java语言描述(原书第3版) 是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估

      立即下载
      学习JavaScript数据结构与算法(第3版)
      学习JavaScript数据结构与算法(第3版) PDF 完整高清版 立即下载
      数据结构与算法分析:C++语言描述
      数据结构与算法分析:C++语言描述 PDF 第四版

      数据结构与算法分析:C++语言描述(第四版) 是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书中内容包括表、栈、队列、树、散列表、优先队列、排

      立即下载
      读者心得
      27小时19分钟前回答

      Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例

      本文实例讲述了python找到最大或最小的N个元素实现方法。分享给大家供大家参考,具体如下: 问题: 想在某个集合中找出最大或最小的N个元素 解决方案: heapq模块中的 nlargest() 和 nsmallest() 两个函数正是我们需要的。 import heapq nums=[1,8,2,23,7,-4,18,23,42,37,2] print(heapq.nlargest(3,nums))[42, 37, 23] print(heapq.nsmallest(3,nums))[-4, 1, 2] 这两个函数接受一个参数key,允许其工作在更复杂的数据结构之上: # example.py## Example of using heapq to find the N smallest or largest itemsimport heapqportfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1}, {'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'FB', 'shares': 200, 'price': 21.09}, {'name': 'HPQ', 'shares': 35, 'price': 31.7……

      23小时29分钟前回答

      java 数据结构之栈与队列

      java 数据结构之栈与队列 一:对列 队列是一种先进先出的数据结构 实现代码: package Queue; /* * 使用java构建队列,并模拟实现队列的入队和出对方法 */ public class Queue { //队列类 private int maxSize; //定义队列的长度 private int[] arrQueue; //队列 private int rear; //定义队列的尾指针 private int front; //定义队列的头指针 private int empty; //元素的个数 public Queue(int s) //初始化构造函数 { maxSize = s; arrQueue = new int[s]; rear = -1; front=0; empty = 0; } //实现插入方法 public void insert(int m) { if(rear == maxSize-1) //处理循环 rear = -1; arrQueue[++rear] = m; //对尾指针加一,把值放在队列结尾 empty++; //队列元素个数加1 System.out.println("队列入队元素 为:"……

      码农之家

      翟俊雄 提供上传

      资源
      34
      粉丝
      5
      喜欢
      113
      评论
      11

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com