鍊錶的基本操作

2021-08-18 19:50:07 字數 2758 閱讀 8602

鍊錶的常見面試題

標頭檔案宣告

#pragma once

#include

#include

#include

#include

typedef

int datatype;

typedef

struct node

node, *pnode;

void slistinit(pnode * phead); //初始化

void slistpushblack(pnode* phead, datatype data); //尾插

void slistpopblack(pnode *phead); //尾刪

void slistpushfront(pnode *phead, datatype data); //頭插

void slistpopfront(pnode *phead); //頭刪

void slistinsert(pnode phead,pnode pos, datatype data); //在鍊錶pos位置後插入值為data的新節點

void slisterase(pnode* phead, pnode pos); //刪除鍊錶pos位置上的結點

pnode slistfind(pnode phead, datatype data); // 在鍊錶中查詢值為data的元素,找到後返回值為data的結點

int slistsize(pnode phead); // 獲取鍊錶中值data的結點的個數

int slistempty(pnode phead,datatype data); // 判斷鍊錶是否為空

void slistdestroy(pnode* phead); // 銷毀聊表

void slistprint(pnode phead); //列印

pnode buyslistnode(datatype data); //分配空間

void testpush();

void test();

函式實現

#include

"slist.h"

//初始化

void slistinit(pnode *phead)

//尾插

void slistpushblack(pnode *phead, datatype data)

else

pcur->_pnext = buyslistnode(data);

}}//尾刪

void slistpopblack(pnode *phead)

//只有乙個結點

else

if (null

== (*phead)->_pnext)

//多個結點

else

free(pcur);

ptail->_pnext =

null;

}}//頭插

void slistpushfront(pnode *phead, datatype data)

//頭刪

void slistpopfront(pnode *phead)

else

}//在鍊錶pos位置後插入值為data的新節點

void slistinsert(pnode phead, pnode pos, datatype data)

else

}//刪除鍊錶pos位置上的結點

void slisterase(pnode *phead, pnode pos)

else

}// 獲取鍊錶中值data的結點的個數

int slistsize(pnode phead,datatype data)

while (pcur)

pcur = pcur->_pnext;

}return count;

}// 判斷鍊錶是否為空

int slistempty(pnode phead)

else

}// 銷毀聊表

void slistdestroy(pnode* phead)

else

}}//構建新結點

pnode buyslistnode(datatype data)

pnewnode->_data =

data;

pnewnode->_pnext=

null;

return pnewnode;

}//列印

void slistprint(pnode phead)

while (pcur)

printf("null\n");

}//查詢pos位置節點

pnode slistfind(pnode phead, datatype data)

while (pcur)

}return

null;

}//測試

void test()

//測試頭尾插

void testpush()

鍊錶的基本操作

include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...

鍊錶的基本操作

鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...

鍊錶的基本操作。。。

include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...