線性表 單鏈表

2021-09-27 15:55:23 字數 1918 閱讀 6904

template struct node 

;

template class linklist //無參建構函式,建立只有頭結點的空鍊錶

linklist ( t a[ ], int n ) ; //有參建構函式,建立有n個元素的單鏈表

~linklist ( ) ; //析構函式

int length ( ) ;//求單鏈表的長度

t get ( int i ) ; //按位查詢

int locate ( t x ) ;//按值查詢

void insert ( int i, t x ) ;//插入操作

t delete ( int i ) ; //刪除操作

void printlist ( ) ; //遍歷操作

private:

node*first; // 單鏈表的頭指標 , 可以省略

};

template linklist:: linklist(t a[ ], int n) 

}

②尾插法:

template linklist:: linklist(t a[ ], int n) 

r->next=null; //單鏈表建立完畢,將終端結點的指標域置空

}

template linklist:: ~linklist()

}

template int linklist::length()

return count;

}

template t linklist::get(int i) 

if (!p) throw "位置";

else return p->data;

}

template t linklist::locate(t x) 

return 0;

}

template void linklist::insert(int i, t x)

if (!p) throw "位置";

else

}

template t linklist::delete(int i)

if (!p || !p->next) throw "位置"; //結點p不存在或結點p的後繼結點不存在

else

}

template linklist:: printlist()

}

不帶頭結點的操作

1.頭插法:

template linklist:: linklist(t a[ ], int n) 

}

2.尾插法:

template linklist:: linklist(t a[ ], int n) 

3.插入操作

template void linklist::insert(int i, t x)

p=first ; j=1; //工作指標p初始化

while (p && jnext; //工作指標p後移

j++;

}if (!p) throw "位置";

線性表 單鏈表

define crt secure no deprecate define crt secure cpp overload standard names 1 includeusing namespace std typedef struct node node node headpointer 頭指...

線性表 單鏈表

單鏈表結構與順序儲存結構對比 一 儲存分配方式 1 順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素 2 單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素 二 時間效能 1 查詢 順序儲存結構o 1 單鏈表o n 2 插入和刪除 順序儲存結構o n 單鏈表找到位置後插入刪除時間o...

線性表 單鏈表

1 單鏈表的結點定義 typedef struct node slnode 2 初始化listinitiate slnode head void listinitiate slnode head 初始化 3 求當前資料元素個數listlength slnode head int listlength...