C 單鏈表基本操作

2022-07-26 08:18:13 字數 2446 閱讀 9944

鍊錶一直是面試的高頻題,今天先總結一下單鏈表的使用,下節再總結雙向鍊錶的。本文主要有單鏈表的建立、插入、刪除節點等。

1、概念

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。

鍊錶中的資料是以結點來表示的,每個結點的構成:元素 + 指標,元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。如下圖:

2、鍊錶的基本操作

singlelist.cpp:

#include "

stdafx.h

"#include

"singlelist.h

"#include

#include

#include

#include

#include

/*c++實現簡單的單鏈表操作

*/using

namespace

std;

singlelist::singlelist()

singlelist::~singlelist()

//建立單鏈表

node *singlelist::creatnode()

else

}head = head->next;

p->next =null;

printf(

"頭節點學生資訊為: %d%s\n

", head->num, head->name);

return

head;}//

單鏈表插入

node *singlelist::insertnode(node *head, int num, char*name)

if (s->num <= p1->num)

else

}else

return

head;}//

計算單鏈表長度

int singlelist::getlength(node *head)

return

length;}//

單鏈表刪除某個元素

node *singlelist::deletenode(node *head, int

num)

if (num == p1->num)

else

free

(p1);

}else

return

head;}//

單鏈表逆序

node *singlelist::reverselist(node *head)

head->next =null;

head =new_head;

return

head;}//

列印單鏈表

void singlelist::printlist(node *head)

}

singlelist.h:

#pragma oncetypedef 

struct

student

node;

class

singlelist

;

關於逆序邏輯,研究了一下:1、主要思路:假設有單鏈表a->b->c->d,首先取出首節點a作為新逆序出來的鍊錶

這樣,原鍊錶就為:b->c->d,逆序後的新鍊錶為:a

2. 按照上述方法,依次取出b、c、d放入新鍊錶

2、圖形表示:

原始的單鏈表

初始狀態時,單鏈表如上圖所示,

head

指向頭節點a。

1. 取出原始鍊錶的第乙個節點

a,然後將該節點作為新鍊錶的頭節點

原始鍊錶:

新鍊錶:

2.然後同上處理:

原始鍊錶:

新鍊錶:

c 單鏈表基本操作

下午沒事,看資料結構。想到自畢業以後,都沒有寫過這些東西了。寫個鍊錶基本操作,還沒完全測試。includeusing namespace std node 節點 struct node int data node p 單鏈表 class link 通過陣列夠造 link int arr,int le...

C 單鏈表基本操作

include using namespace std struct node class list 建立帶頭結點的鍊錶,head next null 表示鍊錶為空,只有乙個頭結點 void creatlist1 int n 頭插入法建立鍊錶 void creatlist2 int n 尾插入法建立...

單鏈表基本操作

include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...