IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁操作系統(tǒng)LINUX → 單鏈表和雙鏈表的倒序

單鏈表和雙鏈表的倒序

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  #include

  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

關(guān)鍵詞標(biāo)簽:單鏈表,雙鏈表

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP Linux操作系統(tǒng)修改IP

相關(guān)下載

    人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載