鍊錶的基本操作

2021-08-30 02:22:23 字數 2316 閱讀 5441

鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。 

#ifndef __linklist_h__ 

#define __linklist_h__

#include #include #include #include #include typedef int datatype;

typedef struct node node;

typedef struct node* pnode;

typedef struct node list;

typedef struct node* plist;

struct node

;void initlinklist(plist* pplist);

pnode buynode(datatype d);

void destroylinklist(plist* pplist);

void pushback(plist plist, datatype d);

void popback(plist* pplist);

void pushfront(plist* pplist, datatype d);

void popfront(plist* pplist);

pnode find(plist* pplist, datatype d);

void print(plist* pplist);

//在指定位置之前插入乙個值

void insert(plist* pplist, pnode pos, datatype d);

//指定位置刪除

void erase(plist* pplist, pnode pos);

void remove(plist* pplist, datatype d);

void removeall(plist* pplist, datatype d);

void erasenottailnode(pnode pos);

void printlinklist(plist plist);

int getlistlength(plist plist);

//鏈表面試題

//1. 逆序列印單項鍊表

void printreverse(plist plist);

void reverse(plist plist, plist *newplist);

#endif //__linklist_h__

#include "linklist.h"

void test()

int main()

int getlistlength(plist plist)

return count;

}void reverse(plist plist,plist *newplist)

print(newplist);

}void printreverse(plist plist)

else if (cur->next == null) }

pnode buynode(datatype d)

newnode->data = d;

newnode->next = null;

return newnode;

}void initlinklist(plist* pplist)

void print(plist* pplist)

printf("null\n");

}void pushback(plist* pplist, datatype d)

else

cur->next = newnode; }}

void popback(plist* pplist)

pre->next = null;

free(cur);

}void pushfront(plist* pplist, datatype d)

else }

void popfront(plist* pplist)

pnode find(plist *pplist, datatype d)

cur = cur->next;

} return null;

}void insert(plist* pplist, pnode pos, datatype d)

void erase(plist* pplist, pnode pos)

鍊錶的基本操作

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...