真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

(C++)利用雙向鏈表基本實(shí)現(xiàn)從鄰接矩陣到鄰接鏈表的轉(zhuǎn)換-創(chuàng)新互聯(lián)

#include#includeusing namespace std;

struct node {
? ? int data;
? ? node* next;
? ? node* parent;
};

class Linkedlist
{
public:

? ? Linkedlist(): head(NULL), last(NULL){}

? ? bool isEmpty() { return isEmpty(head); };
? ? void insertEnd(int data) { return insertEnd(head,last, data); }
? ? void insertFirst(int data) { return insertFirst(head, last, data); };
? ? void removeFirst() { removeFirst(head, last); };
? ? void removeEnd() { removeEnd(head, last); };
? ? void Preshow() { Preshow(head); };
? ? void Aftershow() { Aftershow(last); }
? ? node* Get_head() { return head; }
? ??
? ? //輸入數(shù)組創(chuàng)建鏈表
? ? void createListfromArr(int arr[], int n) {
? ? ? ? for (int i = 0; i< n; i++) {
? ? ? ? ? ? insertEnd(head, last, arr[i]);
? ? ? ? }
? ? ? ? return;
? ? }


private:
? ? node* head;
? ? node* last;

? ? //判斷是否為空
? ? bool isEmpty(node* head) {
? ? ? ? if (head == NULL)
? ? ? ? ? ? return true;
? ? ? ? else
? ? ? ? ? ? return false;
? ? }

? ? void insertAsFistElement(node*& head, node*& last, int data) {
? ? ? ? node* tmp = new node;
? ? ? ? tmp->data = data;
? ? ? ? tmp->next = NULL;
? ? ? ? tmp->parent = NULL;
? ? ? ? head = tmp;
? ? ? ? last = tmp;

? ? }
? ? //在末尾添加數(shù)據(jù)

? ? void insertEnd(node*& head, node*& last, int data) {
? ? ? ? if (isEmpty(head))
? ? ? ? ? ? insertAsFistElement(head, last, data);
? ? ? ? else {
? ? ? ? ? ? node* tmp = new node;
? ? ? ? ? ? tmp->data = data;
? ? ? ? ? ? tmp->next = NULL;
? ? ? ? ? ? last->next = tmp;
? ? ? ? ? ? tmp->parent = last;
? ? ? ? ? ? last = tmp;
? ? ? ? }
? ? }

? ? //在開始添加數(shù)據(jù)
? ? void insertFirst(node*& head, node*& last, int data) {
? ? ? ? if (isEmpty(head))
? ? ? ? ? ? insertAsFistElement(head, last, data);
? ? ? ? else {
? ? ? ? ? ? node* tmp = new node;
? ? ? ? ? ? tmp->data = data;
? ? ? ? ? ? tmp->parent = NULL;
? ? ? ? ? ? head->parent = tmp;
? ? ? ? ? ? tmp->next = head;
? ? ? ? ? ? head = tmp;
? ? ? ? }
? ? }


? ? //刪除最后一個(gè)數(shù)據(jù)。
? ? void removeEnd(node*& head, node*& last) {
? ? ? ? if (isEmpty(head))
? ? ? ? ? ? cout<< "Empty link list!"<< endl;
? ? ? ? else if (head == last) {
? ? ? ? ? ? delete head;
? ? ? ? ? ? head = NULL;
? ? ? ? ? ? last = NULL;
? ? ? ? }
? ? ? ? else {
? ? ? ? ? ? node* tmp = last;
? ? ? ? ? ? last = last->parent;
? ? ? ? ? ? last->next = NULL;
? ? ? ? ? ? delete tmp;
? ? ? ? }

? ? }

? ? //刪除第一個(gè)數(shù)據(jù)。
? ? void removeFirst(node*& head, node*& last) {
? ? ? ? if (isEmpty(head))
? ? ? ? ? ? cout<< "Empty link list!"<< endl;
? ? ? ? else if (head == last) {
? ? ? ? ? ? delete head;
? ? ? ? ? ? head = NULL;
? ? ? ? ? ? last = NULL;
? ? ? ? }
? ? ? ? else {
? ? ? ? ? ? node* tmp = head;
? ? ? ? ? ? head = head->next;
? ? ? ? ? ? head->parent = NULL;
? ? ? ? ? ? delete tmp;
? ? ? ? }

? ? }

? ? //從頭開始遍歷
? ? void Preshow(node* current) {
? ? ? ? if (isEmpty(current))
? ? ? ? ? ? cout<< "the list is empty!"<< endl;
? ? ? ? else {
? ? ? ? ? ? while (current != NULL) {
? ? ? ? ? ? ? ? cout<< current->data<< "->";
? ? ? ? ? ? ? ? current = current->next;
? ? ? ? ? ? }
? ? ? ? ? ? cout<< "NULL"<< endl;
? ? ? ? }
? ? }
? ??
? ? //從尾開始遍歷
? ? void Aftershow(node* current) {
? ? ? ? if (isEmpty(current))
? ? ? ? ? ? cout<< "the list is empty!"<< endl;
? ? ? ? else {
? ? ? ? ? ? while (current != NULL) {
? ? ? ? ? ? ? ? cout<< current->data<< "->";
? ? ? ? ? ? ? ? current = current->parent;
? ? ? ? ? ? }
? ? ? ? ? ? cout<< "NULL"<< endl;
? ? ? ? }
? ? }
};

//輸入鄰接矩陣創(chuàng)建鄰接鏈表:
void test03()
{
? ? vector>Matrix; //接收輸入的鄰接矩陣
? ? vectorMyVector; ? ? ? //目標(biāo)得到的鄰接鏈表

? ? //接受維數(shù):
? ? int dim; cin >>dim;

? ? //接收鄰接矩陣:
? ? for (int i = 0; i< dim; i++)
? ? {
? ? ? ? vectormatrix; ? ? ? ? //鄰接矩陣的內(nèi)部矩陣
? ? ? ? for (int j = 0; j< dim; j++)
? ? ? ? {
? ? ? ? ? ? int num; cin >>num;
? ? ? ? ? ? matrix.push_back(num);
? ? ? ? }
? ? ? ? Matrix.push_back(matrix);
? ? }

? ? //檢測(cè)鄰接矩陣
? ? for (int i = 0; i< dim; i++)
? ? {
? ? ? ? for (int j = 0; j< dim; j++)
? ? ? ? {
? ? ? ? ? ? cout<< Matrix[i][j];
? ? ? ? }
? ? ? ? cout<< endl;
? ? }

? ? //建立并遍歷鄰接鏈表
? ? for (int i = 0; i< dim; i++)
? ? {
? ? ? ? Linkedlist Mylist;
? ? ? ? for (int j = 0; j< dim; j++)
? ? ? ? {
? ? ? ? ? ? if (Matrix[i][j] == 1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Mylist.insertEnd(j + 1);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? MyVector.push_back(Mylist.Get_head());
? ? ? ? //遍歷:
? ? ? ? cout<< i+1<< ": ";
? ? ? ? Mylist.Preshow();
? ? ? ? cout<< endl;
? ? }
}

int main() {
? ? test03();
? ? return 0;
}


?

輸入:

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的溫嶺網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
9
0 1 1 1 0 0 0 0 0
1 0 0 0 1 1 0 0 0
1 0 0 1 0 0 0 1 0
1 0 1 0 0 0 0 1 1
0 1 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 1 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0

輸出:

011100000
100011000
100100010
101000011
010000100
010000000
000010000
001100000
000100000
1: 2->3->4->NULL

2: 1->5->6->NULL

3: 1->4->8->NULL

4: 1->3->8->9->NULL

5: 2->7->NULL

6: 2->NULL

7: 5->NULL

8: 3->4->NULL

9: 4->NULL

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站欄目:(C++)利用雙向鏈表基本實(shí)現(xiàn)從鄰接矩陣到鄰接鏈表的轉(zhuǎn)換-創(chuàng)新互聯(lián)
分享路徑:http://weahome.cn/article/ddpsgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部