C++鎬庝箞鐢ㄧ被瀹炵幇閾捐〃
瑕佷娇鐢ㄧ被瀹炵幇閾捐〃锛岄鍏堥渶瑕佸畾涔変竴涓妭鐐圭被鏉ヨ〃绀洪摼琛ㄧ殑鑺傜偣锛岀劧鍚庡啀瀹氫箟涓€涓摼琛ㄧ被鏉ユ搷浣滆繖浜涜妭鐐广€?/p>
浠ヤ笅鏄竴涓娇鐢ㄧ被瀹炵幇閾捐〃鐨勭ず渚嬶細
#include <iostream>
// 閾捐〃鑺傜偣绫?/span>
class Node {
public:
int data;
Node* next;
Node(int value) {
data = value;
next = nullptr;
}
};
// 閾捐〃绫?/span>
class LinkedList {
private:
Node* head; // 閾捐〃澶存寚閽?/span>
public:
LinkedList() {
head = nullptr;
}
// 鍦ㄩ摼琛ㄥ熬閮ㄦ彃鍏ヤ竴涓妭鐐?/span>
void append(int value) {
Node* newNode = new Node(value);
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 鍦ㄩ摼琛ㄦ寚瀹氫綅缃彃鍏ヤ竴涓妭鐐?/span>
void insert(int value, int index) {
if (index < 0) {
std::cout << "Invalid index!" << std::endl;
return;
}
Node* newNode = new Node(value);
if (index == 0) {
newNode->next = head;
head = newNode;
} else {
Node* current = head;
for (int i = 0; i < index - 1; i++) {
if (current == nullptr) {
std::cout << "Invalid index!" << std::endl;
return;
}
current = current->next;
}
newNode->next = current->next;
current->next = newNode;
}
}
// 鍒犻櫎閾捐〃鎸囧畾浣嶇疆鐨勮妭鐐?/span>
void remove(int index) {
if (index < 0) {
std::cout << "Invalid index!" << std::endl;
return;
}
if (index == 0) {
Node* temp = head;
head = head->next;
delete temp;
} else {
Node* current = head;
for (int i = 0; i < index - 1; i++) {
if (current == nullptr || current->next == nullptr) {
std::cout << "Invalid index!" << std::endl;
return;
}
current = current->next;
}
Node* temp = current->next;
current->next = temp->next;
delete temp;
}
}
// 鎵撳嵃閾捐〃涓殑鎵€鏈夎妭鐐瑰€?/span>
void print() {
Node* current = head;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
std::cout << std::endl;
}
};
int main() {
LinkedList myList;
myList.append(1);
myList.append(2);
myList.append(3);
myList.insert(4, 1);
myList.print(); // 杈撳嚭锛? 4 2 3
myList.remove(2);
myList.print(); // 杈撳嚭锛? 4 3
return 0;
}
鍦ㄤ笂杩扮ず渚嬩腑锛屾垜浠鍏堝畾涔変簡涓€涓妭鐐圭被Node
锛屽寘鍚竴涓暣鍨嬫暟鎹垚鍛?code>data鍜屼竴涓寚鍚戜笅涓€涓妭鐐圭殑鎸囬拡next
銆?/p>
鐒跺悗锛屾垜浠畾涔変簡涓€涓摼琛ㄧ被LinkedList
锛屽寘鍚竴涓寚鍚戦摼琛ㄥご閮ㄧ殑鎸囬拡head
銆傞摼琛ㄧ被涓疄鐜颁簡鍑犵鍩烘湰鐨勯摼琛ㄦ搷浣滐紝濡傚湪閾捐〃灏鹃儴鎻掑叆鑺傜偣銆佸湪鎸囧畾浣嶇疆鎻掑叆鑺傜偣銆佸垹闄ゆ寚瀹氫綅缃殑鑺傜偣浠ュ強鎵撳嵃閾捐〃涓殑鎵€鏈夎妭鐐广€?/p>
鍦?code>main鍑芥暟涓紝鎴戜滑鍒涘缓浜嗕竴涓摼琛ㄥ璞?code>myList锛屽苟杩涜浜嗕竴浜涙彃鍏ャ€佸垹闄ゅ拰鎵撳嵃鎿嶄綔锛屾渶鍚庨攢姣侀摼琛ㄥ璞°€?/p>
杩愯涓婅堪绀轰緥浠g爜锛屽皢杈撳嚭濡備笅缁撴灉锛?/p>
1 4 2 3
1 4 3
杩欒〃鏄庝娇鐢ㄧ被瀹炵幇鐨勯摼琛ㄨ兘澶熸甯稿伐浣溿€?/p>