数据结构练习
  1. 请写一个函数求给定顺序表中的各元素的和(顺序表中元素类型为浮点数)。

    double sum( sequence_list *slt) {  }
  2. 请写一个函数,在带头节点的单链表中查找两个相邻的值相等的元素,返回两个元素中前一个元素的指针,找不到返回NULL。

    node *adjacent_find( node * head) {   }
  3. 写一个递归函数,从尾部到头部反向打印单链表(不带头节点,元素类型为int)

    void reverse_print( node *head ) {   }
  4. 有一种叫做双端队列的数据结构deque,它是一种结合队列和栈的功能于一体的数据结构,它可以前端插入后端删除,也可以后端插入前端删除,也可以后端插入后端删除。请实现这种数据结构,并给出主要算法(头部插入、删除、尾部插入、删除)。
  5. 请写一个函数,将顺序表中每个元素的值变为原值的平方。

    void square( sequence_list *slt ) {   }
  6. 请写一个函数,在带头节点单链表中查找最后一个值为x的节点,返回指向该节点的指针。

    node *find_last( node * head, datatype  x) {  }
  7. 使用栈来实现单链表(不带头节点,元素类型为int)反向打印。

    void reverse_print( node * head) {   }
  8. 有一种叫做优先队列的数据结构priority_queue,与队列类似,不同的是数据元素在进入队列后,不是按照先进先出的原则出队,而是按照从大到小的原则出队。比如数据元素按照3,2,4,1,5的顺序入队后,能够按照5,4,3,2,1的顺序出队。请实现这个数据结构,并给出入队出队的算法。

数据结构练习 (2008-07-08 07:40:35由czk编辑)