單鏈表的實現 不帶頭結點

2021-06-19 19:07:55 字數 2238 閱讀 6016

// linklist.cpp : 定義控制台應用程式的入口點。 

//定義的鍊錶不含頭結點 

#include "stdafx.h" 

#include

using namespace std; 

template

//定義結點 

struct node 

;  //定義鍊錶 

template

class linklist 

;  template

linklist::linklist()//預設建構函式 

template

linklist::linklist(const linklist& otherlist)//拷貝建構函式 

else 

otherlistcurrent = otherlistcurrent->next; 

}        

}  } 

template

linklist::~linklist() 

template

void linklist::createinserthead()//頭插法 

}  template

void linklist::createinsertrear()//尾插法    尾插法和拷貝建構函式都有單獨考慮第乙個結點的情況 

else 

}  }  template

void linklist::initlist() 

template

bool linklist::isempty() 

else  

}  template

int  linklist::length() 

template

void linklist::destorylist() 

head = null; 

m_length = 0; 

}  template

void linklist::getfirstdata(type& firstdata) 

else  

data = current->data; 

}  

}  template

void linklist::insertfirst(type newdata) 

template

void linklist::insertlast(type newdata)//尾部插入元素 

node*newnode = new node; 

newnode->data = newdata; 

if (current==null) 

else 

m_length++; 

}  template

void linklist::deletefirst(type& data) 

m_length--; 

}  template

void linklist::deletelast(type& data) 

node*temp = current->next; 

data = temp->data; 

current->next = temp->next; 

delete temp; 

m_length--; 

}    

}  template

void linklist::reverse() 

}    

}  template

const linklist& linklist::operator=(const linklist&otherlist) 

if (otherlistcurrent!=null) 

else 

otherlistcurrent = otherlistcurrent->next; 

}  } 

}  return *this; 

}  template

ostream& operator<< <>(ostream& cout,const linklist& list) 

cout<*list = new linklist; 

list->createinserthead(); 

cout<<"list:"<<*listlist->createinsertrear(); 

if (!list->isempty()) 

不帶頭結點的單鏈表

slist.h pragma once typedef int sldatatype typedef struct slistnode slistnode 不帶頭節點的單鏈表 鍊錶初始化 void slistinit slistnode phead 建立新結點 slistnode slistnewn...

不帶頭結點的單鏈表

不帶頭結點的鍊錶的實現 核心是直接設定頭指標指向第乙個節點 要注意此時的l的位址可能會發生改變.同時還要注意一級指標和二級指標的區別.注意linklist l和linklist l的區別 和帶結點的單鏈表的操作相比較,要考慮到頭指標就是頭結點,在一些會改變頭結點的情況下要仔細考慮.include i...

不帶頭結點的單鏈表

單鏈表也可以不設頭結點,如圖212 所示。顯 然,基於這種結構的基本操作和帶有頭結點的線性鏈 表基本操作是不同的。bo2 8.cpp 是不帶頭結點的線 性鍊錶的基本操作。bo2 8.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的部分基本操作 9個 define destroylist c...