亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fchain.h

?? 求最短路徑的C++ 源代碼
?? H
字號:
#ifndef Chain_
#define Chain_

// file fchain.h
// extended chain including delete by key
#include "stdafx.h"
#include <iostream>
#include "cnode.h"
#include <stdexcept>
using namespace std;

template <class T> class ChainIterator;

template<class T>
class Chain {
   friend  ChainIterator<T>;
   public:
      Chain() {first = 0;}
      ~Chain() {Erase();} 
      bool IsEmpty() const {return first == 0;}
      int Length() const; 
      bool Find(int k, T& x) const; 
      int Search(const T& x) const; 
      Chain<T>& Delete(int k, T& x); 
      Chain<T>& Delete(T& x);
      Chain<T>& Insert(int k, const T& x); 
      ChainNode<T> * First() const {return first;}
      void Zero() {first = 0;}
      void Erase(); // delete all nodes
      Chain<T>& Append(const T& x);
      void Output(ostream& out) const;
   private:
      ChainNode<T> *first,  // pointer to first node
                   *last;   // pointer to last node
};


template<class T>
void Chain<T>::Erase()
{// Delete all nodes in chain.
   ChainNode<T> *next;
   while (first) {
      next = first->link;
      delete first;
      first = next;}
}

template<class T>
int Chain<T>::Length() const
{// Return the number of elements in the chain.
   ChainNode<T> *current = first;
   int len = 0;
   while (current) {
      len++;
      current = current->link;}
   return len;
}

template<class T>
bool Chain<T>::Find(int k, T& x) const
{// Set x to the k'th element in the chain.
 // Return false if no k'th; return true otherwise.
   if (k < 1) return false;
   ChainNode<T> *current = first;
   int index = 1;  // index of current
   while (index < k && current) {
      current = current->link;
      index++;}
   if (current) {x = current->data;
                 return true;}
   return false; // no k'th element
}

template<class T>
int Chain<T>::Search(const T& x) const
{// Locate x.  Return position of x if found.
 // Return 0 if x not in the chain.
   ChainNode<T> *current = first;
   int index = 1;  // index of current
   while (current && current->data != x) {
      current = current->link;
      index++;}
   if (current) return index;
   return 0;
}

template<class T>
Chain<T>& Chain<T>::Delete(int k, T& x)
{// Set x to the k'th element and delete it.
 // Throw OutOfBounds exception if no k'th element.
   if (k < 1 || !first)
      throw logic_error("is wrong"); // no k'th
   
   // p will eventually point to k'th node
   ChainNode<T> *p = first;

   // move p to k'th & remove from chain
   if (k == 1) // p already at k'th
      first = first->link; // remove
   else { // use q to get to k-1'st
      ChainNode<T> *q = first;
      for (int index = 1; index < k - 1 && q;
                          index++)
         q = q->link;
      if (!q || !q->link)
         throw logic_error("is wrong"); // no k'th
      p = q->link; // k'th
      if (p == last) last = q;
      q->link = p->link;} // remove from chain

   // save k'th element and free node p
   x = p->data;
   delete p;
   return *this;
}

template<class T>
Chain<T>& Chain<T>::Delete(T& x)
{// Delete element matching x.
 // Throw BadInput exception if no match.
   ChainNode<T> *current = first,
                *trail = 0; // one behind current

   // search for match
   while (current && current->data != x) {
      trail = current;
      current = current->link;}
   if (!current) throw logic_error("is wrong"); // no match

   // match found in node current
   x = current->data; // save matching element

   // remove current from chain
   if (trail) trail->link = current->link;
   else first = current->link; // current is first node

   delete current;  // free node
   return *this;
}

template<class T>
Chain<T>& Chain<T>::Insert(int k, const T& x)
{// Insert x after the k'th element.
 // Throw OutOfBounds exception if no k'th element.
 // Pass NoMem exception if inadequate space.
   if (k < 0) throw logic_error("is wrong");

   // p will eventually point to k'th node
   ChainNode<T> *p = first;
   for (int index = 1; index < k && p;
                       index++)  // move p to k'th
      p = p->link;
   if (k > 0 && !p) throw logic_error("is wrong");// no k'th

   // insert
   ChainNode<T> *y = new ChainNode<T>;
   y->data = x;
   if (k) {// insert after p
           y->link = p->link;
           p->link = y;}
   else {// insert as first element
         y->link = first;
         first = y;}
   if (!y->link) last = y; // new last element
   return *this;
}

template<class T>
Chain<T>& Chain<T>::Append(const T& x)
{// Add x at right end.
   ChainNode<T> *y;
   y = new ChainNode<T>;
   y->data = x; y->link = 0;
   if (first) {// chain is not empty
               last->link = y;
               last = y;}
   else // chain is empty
        first = last = y;
   return *this;
}

template<class T>
void Chain<T>::Output(ostream& out) const
{// Insert the chain elements into the stream out.
   ChainNode<T> *current;
   for (current = first; current;
                         current = current->link)
      out << current->data << "  ";   //與GraphNode <<  重載
}

// overload <<
template <class T>
ostream& operator<<(ostream& out, const Chain<T>& x)
   {x.Output(out); return out;}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日韩av| 奇米色一区二区| 精品免费日韩av| 欧美一区二区免费| 日韩欧美国产午夜精品| 91精品在线免费| 久久午夜老司机| 中文字幕不卡三区| 一区二区三区中文在线| 伊人婷婷欧美激情| 蜜臀精品久久久久久蜜臀| 婷婷综合另类小说色区| 欧美a级一区二区| 不卡av在线网| av不卡在线观看| 国产亚洲污的网站| 国产精品久久久久影院| 欧美一区二区不卡视频| 欧美挠脚心视频网站| 在线视频一区二区免费| 欧美疯狂做受xxxx富婆| 久久99精品久久久久久久久久久久 | 7777精品伊人久久久大香线蕉经典版下载 | 精品在线视频一区| 久久嫩草精品久久久精品| 成人免费视频app| 亚洲一区二区欧美日韩| 欧美mv日韩mv亚洲| www.日韩av| 美女视频一区在线观看| 中文字幕欧美日本乱码一线二线 | 国产精品综合网| 一区视频在线播放| 91麻豆精品国产综合久久久久久| 久久成人久久爱| 亚洲免费在线播放| 久久综合色8888| 欧美午夜理伦三级在线观看| 国产一区二区在线影院| 一区二区三区加勒比av| 久久综合久久综合亚洲| 欧美日韩在线不卡| 成人av电影免费观看| 免费在线观看精品| 亚洲精品写真福利| 欧美国产精品v| 日韩视频一区二区| 在线免费观看成人短视频| 久草热8精品视频在线观看| 一区二区免费看| 久久久99精品免费观看不卡| 欧美三级视频在线观看| 暴力调教一区二区三区| 另类综合日韩欧美亚洲| 亚洲国产日韩一级| 综合久久国产九一剧情麻豆| 精品人伦一区二区色婷婷| 欧美性猛片aaaaaaa做受| 成人av在线资源网| 国产精品自在欧美一区| 免费成人你懂的| 亚洲第一在线综合网站| 日韩毛片一二三区| 国产午夜精品久久久久久久| 欧美一二区视频| 欧美日韩一二三区| 日本道免费精品一区二区三区| 国产成人精品影视| 国产精品99久久久久久久vr| 蜜桃一区二区三区在线观看| 亚洲h在线观看| 亚洲国产精品一区二区尤物区| 亚洲人成人一区二区在线观看| 久久精品一区四区| 久久精品亚洲乱码伦伦中文| 精品国偷自产国产一区| 日韩一区二区免费视频| 欧美一区二区福利视频| 777xxx欧美| 欧美一区二区三区视频免费播放| 欧美欧美欧美欧美首页| 制服丝袜av成人在线看| 欧美疯狂做受xxxx富婆| 日韩一区二区三区精品视频| 91精品在线一区二区| 日韩美女一区二区三区| 26uuu另类欧美亚洲曰本| 久久婷婷久久一区二区三区| 久久久久亚洲蜜桃| 国产精品丝袜91| 国产精品欧美综合在线| 日韩毛片在线免费观看| 亚洲一区二区三区三| 天天影视涩香欲综合网| 美腿丝袜亚洲一区| 国产91综合一区在线观看| a美女胸又www黄视频久久| 色婷婷综合久久久中文字幕| 在线欧美日韩国产| 日韩一区二区三区在线视频| 久久久蜜桃精品| 亚洲女人****多毛耸耸8| 亚洲国产美女搞黄色| 蜜桃精品在线观看| 不卡的电影网站| 欧美视频三区在线播放| 26uuu久久综合| 亚洲1区2区3区视频| 爽爽淫人综合网网站| 麻豆91免费观看| heyzo一本久久综合| 欧美三区免费完整视频在线观看| 日韩午夜精品电影| 国产精品久久久久久久久快鸭| 亚洲制服丝袜av| 精品制服美女丁香| 色综合视频一区二区三区高清| 欧美日韩精品欧美日韩精品| 久久噜噜亚洲综合| 亚洲午夜免费福利视频| 精品亚洲免费视频| 欧美性一级生活| 2024国产精品| 亚洲国产视频在线| 成人夜色视频网站在线观看| 欧美日韩一级二级三级| 国产精品乱码一区二区三区软件| 午夜精品久久久久久久久| 国产a区久久久| 欧美精品久久99久久在免费线 | 日韩精品91亚洲二区在线观看| 国产在线播放一区| 欧美三电影在线| 中文字幕不卡三区| 极品少妇一区二区| 欧美日本韩国一区| 综合久久国产九一剧情麻豆| 国产精品资源网站| 91麻豆精品国产91久久久使用方法 | 亚洲伦理在线免费看| 寂寞少妇一区二区三区| 欧美久久一二三四区| 综合分类小说区另类春色亚洲小说欧美| 日本aⅴ精品一区二区三区 | 午夜电影一区二区三区| 成人一道本在线| 久久久久久**毛片大全| 日韩av高清在线观看| 欧美在线啊v一区| 综合电影一区二区三区| 国产**成人网毛片九色| 精品精品国产高清a毛片牛牛| 亚洲小少妇裸体bbw| 99re成人在线| 中国av一区二区三区| 欧美专区日韩专区| 国产精品久久久久天堂| 国产高清在线精品| 26uuu久久综合| 狠狠色狠狠色综合系列| 日韩亚洲欧美一区二区三区| 午夜电影一区二区三区| 欧美日韩卡一卡二| 午夜精品免费在线| 欧美系列在线观看| 亚洲成人av在线电影| 欧美日韩一级黄| 婷婷久久综合九色综合绿巨人| 色系网站成人免费| 亚洲激情在线播放| 欧美午夜一区二区三区| 午夜视黄欧洲亚洲| 欧美精品黑人性xxxx| 美国十次综合导航| 欧美videos中文字幕| 麻豆91在线播放| 国产丝袜美腿一区二区三区| 国产凹凸在线观看一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 成人一道本在线| 亚洲精品视频在线观看免费| 91国内精品野花午夜精品| 亚洲一区二区在线免费看| 欧美日韩高清在线| 蜜臀久久久久久久| 久久久久久久综合日本| 大美女一区二区三区| 国产精品久久久久久福利一牛影视 | 中文一区一区三区高中清不卡| 成人的网站免费观看| 亚洲欧美日韩电影| 欧美日韩在线播放一区| 蜜桃在线一区二区三区| 国产日产欧美一区| 色噜噜狠狠色综合中国| 日韩二区三区四区| 久久精品在线免费观看| 欧美在线免费播放| 精品无码三级在线观看视频| 国产精品素人一区二区|