今天用c++裡面的模板實現鍊錶
listnode
list
鍊錶操作:
insert
delete
invert
concatenate
在vs2013中新建專案,在標頭檔案中加入mylist.h,在原始檔中加入main.cpp
#ifndef mylist_h
#define mylist_h
#include
template> class list;
template>
class listnode;
template>
class list;
void delete(type);
void insert(type);
void invert();
void concatenate(list
<
type
>);
void show();//測試使用的函式
private:
listnode<
type
>*first;
};//插入是往最前面插入
template>
void
list
<
type
>
::insert(type k)
template>
listnode<
type
>
::listnode(type element)
template>
void
list
<
type
>
::show()
std::cout
<< std::endl;
}template>
void
list
<
type
>
::invert()
first = q;
}template>
void
list
<
type
>
::delete(type k)
if (current)
else
delete current;
}}template>
void
list
<
type
>
::concatenate(list
<
type
>b)
if (b.first)
}#endif
#include
#include "mylist.h"
using namespace std
;int main()
總結:鍊錶的開發就是按照這樣來開發,我們可以自己動手給鍊錶新增一些功能。以後再開發過程中也是按照這樣的流程來開發。 資料結構與演算法(C語言版) 雙向鍊錶
鍊錶有單向鍊錶也有雙向鍊錶,雙向鍊錶既可以下乙個,也可以上乙個。雙向鍊錶在乙個節點裡至少有三個域,左鏈域 llink 右鏈域 rlink 資料域 data 雙向鍊錶也可以做成迴圈鍊錶,可以有表頭結構。今天我們做乙個雙向鍊錶,但是不是迴圈鍊錶 include using namespace std c...
資料結構 鍊錶(C語言版)
程式 include include include define error 0 define ok 1 define true 1 define false 0 define overflow 2 typedef int elemtype 定義鍊錶元素的型別 typedef int status...
王道資料結構鍊錶C語言版
include stdio.h include stdlib.h include stdbool.h typedef struct lnode lnode,linkedlist 初始化乙個單鏈表 帶頭結點 linkedlist initlist linkedlist l l next null 頭結...