单链表和双链表的倒序_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

您当前所在位置:首页操作系统LINUX → 单链表和双链表的倒序

单链表和双链表的倒序

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(0)

  #include <iostream>

  using namespace std;

  //single link

  struct slink_t{

  struct slink_t* next;

  int data;

  slink_t(): next(0), data(0){

  }

  slink_t(slink_t* p, int d): next(p), data(d){

  }

  };

  /*output data of single link */

  ostream& operator<< (ostream& os, const struct slink_t* p)

  {

  cout << "Output : ";

  while (p && cout << p->data << ' ')

  p = p->next;

  return os;

  }

  /* reverse the single link */

  struct slink_t* slink_reverse(struct slink_t* p)

  {

  struct slink_t* t = NULL, *tp = NULL;

  while (p)

  {

  tp = t;

  t = p;

  p = p->next;

  t->next = tp;

  }

  return t;

  }

  //double link

  struct dlink_t{

  struct dlink_t* next;

  struct dlink_t* prev;

  int data;

  dlink_t(): next(0), prev(0), data(0){

  }

  dlink_t(dlink_t* n, dlink_t* p, int d): next(n), prev(p), data(d){

  }

  };

  /* output data of double link */

  ostream& operator<< (ostream& os, const struct dlink_t* p)

  {

  cout << "Output : ";

  while (p && cout << p->data << ' ')

  p = p->next;

  return os;

  }

  /* reverse the double link */

  struct dlink_t* dlink_reverse(struct dlink_t* p)

  {

  struct dlink_t* t = NULL;

  while (p)

  {

  t = p;

  p = p->next;

  t->next = t->prev;

  t->prev = p;

  }

  return t;

  }

  #define TEST__

  #ifdef TEST__

  /* test */

  int main()

  {

  struct slink_t* sl = new slink_t(new slink_t(new slink_t(new slink_t(new slink_t(new slink_t(NULL, 6), 5), 4), 3), 2), 1);

  cout << sl << endl;

  sl = slink_reverse(sl);

  cout << sl << endl;

  struct dlink_t* dl = NULL;

  struct dlink_t* h = new dlink_t(NULL, dl, 1);

  dl = h;

  for (int i = 2; i < 10; i++)

  {

  struct dlink_t* t = new dlink_t(NULL, dl, i);

  dl->next = t;

  dl = t;

  //  dl->prev->next = dl;

  }

  cout << h << endl;

  h = dlink_reverse(h);

  cout << h << endl;

  cout << "Hello world" << endl;

  return 0;

  }

  #endif

关键词标签:单链表,双链表

相关阅读

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程安装红帽子RedHat Linux9.0操作系统教程使用screen管理你的远程会话使用screen管理你的远程会话GNU/Linux安装vmwareGNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连如何登录linux vps图形界面 Linux远程桌面连

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址linux tc实现ip流量限制dmidecode命令查看内存型号linux下解压rar文件安装红帽子RedHat Linux9.0操作系统教程Ubuntu linux 关机、重启、注销 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服务器硬盘IO读写负载