筆記在**注釋裡。
類的定義:
typedef int elementtype;
class _node
~_node() {}
friend class _linkquene;
protected:
int priority;
elementtype data; //資料域
_node* next; //指標域
};class _linkquene ;
出列函式實現:
bool _linkquene::dequene(elementtype& s)
_node** prev = null;
_node* last = null, * tmp = null, * prev_node = null;
prev = &front;
last = front;
tmp = last->next;
//prev指向的是優先順序最高結點的上乙個節點的next指標
while (tmp)
last = tmp;
tmp = tmp->next;
} //必須用二重指標,儘管有些情況下*prev就是last,
//但這裡還有一種情況是優先順序最高的結點在頭部,而last因為遍歷的原因指向了其他結點
//因為只有*prev能保證指向的是優先順序最高的結點
tmp = *prev;
//tmp = last;
//*prev = last->next;
//左值必須用*prev,因為這裡要修改的是優先順序最高節點的上乙個結點的next 指標
//右值也必須用*prev,原因跟上一句**一致
//所以使用last會出問題,儘管有些情況下*prev==last
*prev = (*prev)->next;
if (!tmp->next)
s = tmp->data;
delete tmp;
tmp = null;
length--;
return true;
}
測試**:
linkquene lq;
int i = 0;
lq.enquene(++i, 35);
lq.enquene(++i, 40);
lq.enquene(++i, 0);
lq.enquene(++i, 0);
lq.enquene(++i, 0);
lq.enquene(++i, 35);
lq.enquene(++i, 50);
lq.enquene(++i, 50);
lq.enquene(++i, 0);
lq.enquene(++i, 60);
cout << "一共" << lq.getlength() << "位顧客." << endl;
lq.printfquene();
cout << "隊頭的顧客是" << lq.gethead() << endl;
for (int j = 0; j < 40; j++)
}
剩餘部分並沒有什麼特別,光修改dequene給我整吐了,瞬間覺得其他的都沒什麼了,所以其他部分沒有記錄下來。 學習筆記6
第七單元 標準的輸出管道命令及for.do.done語句 1.輸出和輸出重定向 a.在i o輸出分為正確的輸出和錯誤的輸出,例如 正確的輸出 root nana pc mnt ls file1 file2 file3 file4 file5 錯誤的輸出 root nana pc mnt sadfsa...
學習筆記6
mysql 的常用命令 1.create database name 建立資料庫 create 內部命令 mysql create database 資料庫名 2.use databasename 選擇資料庫 use 內部命令 mysql use 資料庫名 3.drop database name ...
學習筆記6
php操作mysql 連線mysql伺服器 1.常量定義引數 defin 名稱 值 2.連線 conn mysql connect 伺服器位址,使用者名稱,密碼 or die 3.資料庫錯誤資訊 mysql error 選擇指定資料庫 mysql select db 資料庫名稱,資料庫連線資訊 or...