中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++ example如何展示數據結構與算法

c++
小樊
82
2024-09-27 18:10:46
欄目: 編程語言

在C++中,我們可以通過多種方式展示數據結構與算法的結合。以下是一個簡單的例子,使用鏈表(一種常見的數據結構)和排序算法(如冒泡排序)來展示它們是如何協同工作的。

首先,我們定義一個鏈表節點結構體和一個簡單的鏈表類:

#include <iostream>
using namespace std;

// 鏈表節點結構體
struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(NULL) {}
};

// 鏈表類
class LinkedList {
public:
    LinkedList() : head(NULL) {}

    // 在鏈表末尾添加一個新節點
    void append(int val) {
        if (!head) {
            head = new ListNode(val);
            return;
        }
        ListNode* current = head;
        while (current->next) {
            current = current->next;
        }
        current->next = new ListNode(val);
    }

    // 打印鏈表
    void print() {
        ListNode* current = head;
        while (current) {
            cout << current->val << " ";
            current = current->next;
        }
        cout << endl;
    }

private:
    ListNode* head;
};

接下來,我們實現一個簡單的冒泡排序算法,并將其應用于鏈表:

// 冒泡排序算法
void bubbleSort(LinkedList& list) {
    if (!list.head || !list.head->next) {
        return;
    }

    bool swapped;
    ListNode* current = list.head;
    ListNode* next;

    do {
        swapped = false;
        current = list.head;

        while (current->next) {
            if (current->val > current->next->val) {
                // 交換兩個節點的值
                int temp = current->val;
                current->val = current->next->val;
                current->next->val = temp;
                swapped = true;
            }
            current = current->next;
        }
    } while (swapped);
}

最后,我們創建一個鏈表實例,向其中添加一些元素,并使用冒泡排序對其進行排序:

int main() {
    LinkedList list;
    list.append(5);
    list.append(3);
    list.append(8);
    list.append(1);
    list.append(4);

    cout << "原始鏈表: ";
    list.print();

    bubbleSort(list);

    cout << "排序后的鏈表: ";
    list.print();

    return 0;
}

這個例子展示了如何使用鏈表作為數據結構,以及如何使用冒泡排序算法對其進行排序。當然,這只是一個簡單的示例,實際應用中可能會涉及更復雜的數據結構和算法。

0
启东市| 凉城县| 台北县| 许昌市| 鄂伦春自治旗| 武陟县| 湖南省| 禄丰县| 泸水县| 建始县| 乌拉特后旗| 巴林左旗| 德江县| 河源市| 宁阳县| 东乌珠穆沁旗| 旌德县| 克拉玛依市| 邓州市| 清涧县| 稷山县| 高安市| 玛多县| 兰坪| 开原市| 柳河县| 顺昌县| 洛宁县| 汕头市| 屏山县| 峡江县| 颍上县| 黄浦区| 张北县| 河间市| 旬阳县| 县级市| 民乐县| 乐平市| 忻州市| 江西省|