欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 使用模板實現(xiàn)一個List的實例

 更新時間:2017年05月25日 09:08:57   投稿:lqh  
這篇文章主要介紹了 C++ 使用模板實現(xiàn)一個List的實例的相關資料,需要的朋友可以參考下

C ++使用模板寫的一個List

template<class T> 
class List 
{ 
private: 
  struct Node 
  { 
    T data; 
    Node *next; 
  }; 
  //head 
  Node *head; 
  //size 
  int length; 
 
  //process 
  Node *p; 
 
  //temp 
  Node *q; 
public: 
  List() 
  { 
    head = NULL; 
    length = 0; 
    p = NULL; 
  } 
  void add(T t) 
  { 
    if(head == NULL) 
    { 
      q = new Node(); 
      q->data = t; 
      q->next = NULL; 
      length ++ ; 
      head = q ; 
      p = head; 
    } 
    else 
    { 
      q = new Node(); 
      q->data = t; 
      q->next = NULL; 
      length ++; 
      p -> next = q; 
      p = q; 
    } 
  } 
 
  void remove(int n) 
  { 
    if(n >= length ) 
    { 
      return; 
    } 
    length -- ; 
 
    //刪除頭節(jié)點 
    if(n == 0) 
    { 
      q = head ; 
      head = head -> next; 
      delete(q); 
    } 
    else 
    { 
      q = head; 
      for(int i = 0 ; i < n-1 ; i++) 
      { 
        q = q -> next; 
      } 
      Node *t = q ->next; 
      q->next = q->next ->next; 
      delete(t); 
 
    } 
 
    // 
    p = head; 
    if (p != NULL) 
    { 
      while(p->next != NULL) 
      { 
        p = p->next; 
      } 
    } 
 
  } 
 
  int getSize() 
  { 
    return length; 
  } 
 
  int getLength() 
  { 
    return getSize(); 
  } 
 
  T get(int n) 
  { 
    q = head; 
    for (int i = 0 ;i < n ; i++) 
    { 
      q = q->next; 
    } 
    return q->data; 
  } 
 
 
}; 

調用方式如下

List<Stu>list; 
  Stu stu1; 
  Stu stu2; 
  Stu stu3; 
  stu1.username = "1"; 
  stu2.username = "2"; 
  stu3.username = "3"; 
 
  list.add(stu1); 
  list.remove(0); 
  list.add(stu2); 
  list.add(stu3); 
 
  for (int i = 0 ;i < list.getSize() ; i ++) 
  { 
    cout << list.get(i).username; 
  } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • C++多重繼承二義性原理實例解析

    C++多重繼承二義性原理實例解析

    這篇文章主要介紹了C++多重繼承二義性原理實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • C++數(shù)據(jù)結構之實現(xiàn)循環(huán)順序隊列

    C++數(shù)據(jù)結構之實現(xiàn)循環(huán)順序隊列

    這篇文章主要介紹了 C++數(shù)據(jù)結構之實現(xiàn)循環(huán)順序隊列的相關資料,需要的朋友可以參考下
    2017-01-01
  • C++中l(wèi)ist的用法實例講解

    C++中l(wèi)ist的用法實例講解

    list是順序容器的一種,list是一個雙向鏈表,使用list需要包含頭文件list,這篇文章主要給大家介紹了關于C++中l(wèi)ist的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • C++ Vector 動態(tài)數(shù)組的實現(xiàn)

    C++ Vector 動態(tài)數(shù)組的實現(xiàn)

    這篇文章主要介紹了C++ Vector 動態(tài)數(shù)組的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 基于C++輸出指針自增(++)運算的示例分析

    基于C++輸出指針自增(++)運算的示例分析

    本篇文章是對C++中輸出指針自增(++)運算的示例進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)折半插入排序(BinaryInsertSort)

    C++實現(xiàn)折半插入排序(BinaryInsertSort)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)折半插入排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++輸出問題:保留兩位小數(shù)

    C++輸出問題:保留兩位小數(shù)

    這篇文章主要介紹了C++輸出問題:保留兩位小數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Qt網(wǎng)絡編程之TCP通信及常見問題

    Qt網(wǎng)絡編程之TCP通信及常見問題

    這篇文章主要為大家詳細介紹了Qt網(wǎng)絡編程之TCP通信及常見問題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++實現(xiàn)簡單酒店管理系統(tǒng)

    C++實現(xiàn)簡單酒店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言數(shù)據(jù)結構與算法之鏈表(一)

    C語言數(shù)據(jù)結構與算法之鏈表(一)

    鏈表是線性表的鏈式存儲方式。鏈表的內存是不連續(xù)的,前一個元素存儲地址的下一個地址中存儲的不一定是下一個元素。小編今天就將帶大家深入了解一下鏈表,快來學習吧
    2021-12-12

最新評論