C 單鏈表的基本操作 詳解

2022-10-04 01:27:12 字數 1782 閱讀 3807

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

1、概念

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

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

2、鍊錶的基本操作

singlelist.cpp:

#include "stdafx."

#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 once

typedef struct student

node;

class single程式設計客棧list

;關於逆序邏輯,研究了一下:

1、主要思路:

假設有單鏈表a->b->c->d,首先取出首節點a作為新逆序出來的鍊錶

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

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

2、圖形表示:

原始的單鏈表:

初始狀態時,單鏈表如上圖所示,head指向頭節點a。

1. 取出原始鍊錶的第乙個節點a,然後將該節點作為新鍊錶的頭節點

原始鍊錶:

新鍊錶:

2.然後同上處理:

原始鍊錶:

新鍊錶:

本文標題: c++ 單鏈表的基本操作(詳解)

本文位址:

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 尾插入法建立...

C 單鏈表基本操作

鍊錶一直是面試的高頻題,今天先總結一下單鏈表的使用,下節再總結雙向鍊錶的。本文主要有單鏈表的建立 插入 刪除節點等。1 概念 單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 指標,元素就是儲存資料的儲存單元,指標就是...