標頭檔案
#ifndef _linked_list_h__
#define _linked_list_h__
#include
using namespace std;
#include
typedef int datatype;
struct node
datatype _data;
node* _prev;
node* _next;
}; class list
;
實現函式
#define _crt_secure_no_warnings 1
#include"linkedlist.h"
list::list()
:_phead(null)
{}//建構函式
list::list(size_t n, datatype data)
}//拷貝建構函式
list::list(const
list& ls)
}//賦值運算子過載
list& list:: operator=(const
list& ls)
_phead = new node;
node* tmp = _phead;
node* cur = ls._phead;
while (cur&&cur->_next)
}return *this;
}//銷毀函式
void list::destroy()
}//析構函式
list::~list()
//頭插乙個函式
void list::pushfront(datatype x)
//頭刪乙個元素
void list::popftont()
del = del->_next;
cur->_next = del->_next;
del->_next->_prev = cur;
delete del;
}//尾插/尾刪乙個元素
void list:: pushback(datatype x)
node* newnode = new node(x);
cur->_next = newnode;
newnode->_prev = cur;
}void list:: popback()
while (cur->_next)
free(cur);
prev->_next = null;
}//任意位置插入或者刪除乙個元素
void list::insert(node* pos, datatype x)
node* newnode = new node(x);
newnode->_next = cur->_next;
cur->_next->_prev = newnode;
cur->_next = newnode;
newnode->_prev = cur;
}void list::erase(node* pos)
prev->_next = cur->_next;
cur->_next->_prev = prev;
delete cur;
}//查詢值為x的第乙個出現的位置
node* list::find(datatype x)
if (null != cur)
return
null;
}//列印函式
void list::display()
cout << "null"
<< endl;
}
測試函式
#define _crt_secure_no_warnings 1
#include"linkedlist.h"
void test1()
void test2()
int main()
鍊錶常用操作及面試題
鍊錶是一種比較基礎的資料結構,雖然在acm比賽中不常用,但是在面試中還是比較常問的,所以拿出來寫了一下,發現很多錯誤,由於操作中用到很多指標,所以不經常寫的話很容易寫錯。這裡寫了一下鍊錶的建立,比較基礎!然後是刪除鍊錶的元素,需要考慮刪除的是否為第乙個元素。然後是找鍊錶的倒數第k個元素,可以用兩個指...
鍊錶操作面試題
include using namespace std struct node int value node next node find node phead,int t 一 刪除鍊錶中某個節點 思路 先找到要刪除的節點位置 bool deletet node phead,int t else e...
鍊錶操作面試題
include include include define datetype int typedef struct node node,pnode void printlist pnode head 列印鍊錶 printf null n void bubblesort pnode phead 使用...