急求一段程序!!!

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:17:46
线性表的逆置:设有一个线性表(e0, e1, …, en-2, en-1),请编写一个函数将这个线性表原地逆置,即将线性表内容置换为(en-1, en-2, …, e1, e0)。线性表中的数据可以为整数、字符或字符串,试分别采用顺序存储结构和链式结构来实现。谢谢啦~两个程序~

可以用一个栈结构来实现:

#include <vector>

template <class T> reverseSort(T *addr, int N)//连续空间版本

{

 std::vector<T> vec;

 for(int i = 0; i < N; i++)

  vec.push_back(addr[i]);

 for(int i = 0; i < N; i++)

 {

  addr[i] = vec.back(); 

  vec.pop_back();

 }

}

template <class T> reverseSort(T *p)//重载函数,链表版本

{

 T *p_store = p; //保存空节点的指针

 std::vector<T*> vec; //仅仅存入各个单元的地址,然后让数据结构中改变指向

 while(p->address)

 {

  vec.push_back(p->address); 

  p = p->address;

 }

 p = p_store;

 while(vec.size() != 0)