急求一段程序!!!
来源:百度知道 编辑: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)