C 語言實現線性表之鍊錶例項

2022-10-03 18:30:13 字數 1423 閱讀 2993

插入、刪除結點的**有點多,但這樣提高了**的可讀性,且不增加時間複雜度,不會影響程式效能

#include

using namespace std;

template

class clist;

template

class node

;template

class clist

;//為頭結點分配空間

template

void clist::create()

template

clist::clist()

//刪除所有結點

template

void clist::destroy()

}template

clist::~clist()

//判斷是否為空

template

bool clist::isempty()

else }

//從表的最後加入乙個元素

template

void clist::append(const t &data)

else

m_pend->m_pnext = pt;

++m_len;

}//刪除乙個元素

template

void clist::delete(const int &pos)

else if(ix == pos - 1)

pt = pt->m_pnext;

} if(!ppre)//如果指標為空則說明pos是指第乙個元素

if(!pbehind)//如果指標為空則說明pos是指最後乙個元素

ppre->m_pnext = pbehind;

--m_len;

}//輸出所有資料

template

void clist::print()

//查詢資料

template

t clist::find(const int &pos)

pt = pt->m_pnext;

} return null;

}template

void clist::insert(const int &pos,const t &data)

if(i == pos)

pt = pt->m_pnext;

} node *pnew = new node;

pnew->m_data = data;

if(!ppre)//如果指標為空則說明pos是指第乙個元素

if(!pbehind)//如果指標為空則說明pos是指最後乙個元素

ppre->m_pnext = pnew;

pnew->m_pnext = pt;

++m_len;

}本文標題: c++語言實現線性表之鍊錶例項

本文位址:

續 線性表之雙向鍊錶 C語言實現

在前文實現單向鍊錶的基本操作下,本文實現 雙向鍊錶的基本操作.雙向鍊錶與單鏈表差異,是雙向鍊錶結點中有 前向指標和後向指標.所以在插入和刪除 新結點元素時候不見要考慮後向指標還要考慮 前向指標.以下是雙向鍊錶的c includetypedef struct node node 鍊錶的初始化 node...

線性表c語言實現

lineartable.h pragma once 線性表的實現 define maxsize 20 define ok 1 define error 2 typedef struct list list t 線性表初始化 void initlist list t list 根據下表查詢資料 int...

C語言實現線性表

include include define maxsize 100 定義線性表最大長度 定義順序表 typedef struct seqlist 初始化順序表 void initlist seqlist l 建立順序表 intcreatlist seqlist l,int a,int n for ...