C++中單鏈表的建立與基本操作
準(zhǔn)備數(shù)據(jù)
準(zhǔn)備在鏈表操作中需要用到的變量及數(shù)據(jù)結(jié)構(gòu)
示例代碼如下:
struct Data //數(shù)據(jù)結(jié)點(diǎn)類(lèi)型
{
string key; //關(guān)鍵字
string name;
int age;
};
struct CLType //定義鏈表結(jié)構(gòu)
{
Data nodeData;
Data *nextNode;
};
定義了鏈表數(shù)據(jù)元素的類(lèi)型Data以及鏈表的數(shù)據(jù)結(jié)構(gòu)CLType。結(jié)點(diǎn)的具體數(shù)據(jù)保存在一個(gè)結(jié)構(gòu)Data中,而指針nextNode用來(lái)指向下一個(gè)結(jié)點(diǎn)。
我們可以認(rèn)為,該鏈表是一個(gè)班級(jí)學(xué)生的記錄,其中key表示學(xué)號(hào),name為學(xué)生的名字,age為年齡。
追加結(jié)點(diǎn)
追加結(jié)點(diǎn)就是在鏈表末尾增加一個(gè)結(jié)點(diǎn)。表尾結(jié)點(diǎn)的地址部分原來(lái)保存的是空地址NULL,此時(shí)需要將其設(shè)置為新增結(jié)點(diǎn)的地址(即原表尾結(jié)點(diǎn)指向新增結(jié)點(diǎn)),然后將新增節(jié)點(diǎn)的地址部分設(shè)置為空地址NULL,即新增結(jié)點(diǎn)為表尾。
由于一般情況下,鏈表只有一個(gè)頭指針head,要在末尾添加結(jié)點(diǎn)就需要從頭指針head開(kāi)始逐個(gè)檢查,直到找到最后一個(gè)結(jié)點(diǎn)(即表尾)。
追加結(jié)點(diǎn)的操作步驟如下:
(1)首先分配內(nèi)存地址,保存新增結(jié)點(diǎn)。
(2)從頭指針head開(kāi)始逐個(gè)檢查,直到找到最后一個(gè)結(jié)點(diǎn)(即表尾)。
(3)將表尾結(jié)點(diǎn)的地址設(shè)置為新增結(jié)點(diǎn)的地址。
(4)將新增結(jié)點(diǎn)的地址部分設(shè)置為空地址NULL,即新增結(jié)點(diǎn)成為表尾。
示例代碼如下:
CLType * CLAddEnd(CLType *head,Data nodeData)
{
CLType *node,*htemp;
if(!(node = new CLType))
{
cout<<"分配內(nèi)存失??!"<<endl; //分配內(nèi)存失敗
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)數(shù)據(jù)
node->nextNode = NULL; //設(shè)置結(jié)點(diǎn)指針為空,即作為表尾
if(head == NULL) //當(dāng)鏈表是空表的時(shí)候
{
head = node;
return head;
}
htemp = head;
while(htemp->nextNode != NULL) //查找鏈表的末尾
{
htemp = htemp->nextNode;
}
htemp->nextNode = node;
return head;
}
}
輸入?yún)?shù)head為鏈表頭指針,輸入?yún)?shù)nodeData為結(jié)點(diǎn)保存的數(shù)據(jù)。程序中,使用new關(guān)鍵字申請(qǐng)動(dòng)態(tài)空間,如果內(nèi)分配成功,node中將保存指向該內(nèi)存區(qū)域的指針。
然后,將傳入的nodeData保存到申請(qǐng)的內(nèi)存區(qū)域,并設(shè)置該結(jié)點(diǎn)指向下一結(jié)點(diǎn)的指針值為NULL。
插入頭結(jié)點(diǎn)
插入頭結(jié)點(diǎn)就是在鏈表首部添加結(jié)點(diǎn)的過(guò)程,和在表尾插入結(jié)點(diǎn)相反,這個(gè)操作是在表頭上插入結(jié)點(diǎn),作為頭結(jié)點(diǎn)。
插入頭結(jié)點(diǎn)的步驟如下:
(1)首先分配內(nèi)存,保存新增的結(jié)點(diǎn)。
(2)使新增姐弟那指向頭指針head所指向的結(jié)點(diǎn)
(3)然后使頭指針head指向新增結(jié)點(diǎn)
示例代碼如下:
CLType *CLAddFirst(CLType *head,Data nodeData)
{
CLType *node;
if(!(node = new CLType))
{
cout<<"分配內(nèi)存失敗"<<endl;
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)數(shù)據(jù)
node->nextNode = head; //指向頭指針?biāo)赶虻闹羔?
head = node; //頭指針指向新增結(jié)點(diǎn)
return head;
}
}
輸入?yún)?shù)head為鏈表頭指針,輸入?yún)?shù)nodeData為結(jié)點(diǎn)中保存的數(shù)據(jù)。程序中首先使用new關(guān)鍵字申請(qǐng)一個(gè)新的保存結(jié)點(diǎn)的內(nèi)存空間,如果申請(qǐng)成功,node中將保存指向該內(nèi)存區(qū)域的指針。
然后,將傳入的nodeData保存到申請(qǐng)的內(nèi)存區(qū)域中,并使新增的結(jié)點(diǎn)指向頭指針head所指向的結(jié)點(diǎn),然后設(shè)置頭指針head重新指向新增結(jié)點(diǎn)。
查找結(jié)點(diǎn)
查找結(jié)點(diǎn)就是在鏈表結(jié)構(gòu)中查找需要的元素。對(duì)于鏈表結(jié)構(gòu)來(lái)說(shuō),一般可以分為按照結(jié)點(diǎn)序號(hào)查找和按照關(guān)鍵字查詢(xún)兩類(lèi)。
按照結(jié)點(diǎn)序號(hào)查詢(xún)
即查詢(xún)鏈表中的第多少個(gè)結(jié)點(diǎn),其示例代碼如下:
CLType *CLFindNodeNum(CLType *head,int k)
{
CLType *htemp;
int i = 1;
htemp = head; //保存鏈表頭指針
for(i = 1;i<k&&htemp;i++) //找到該結(jié)點(diǎn)
{
htemp = htemp->nextNode;
}
return htemp; //返回指向第k個(gè)結(jié)點(diǎn)的指針
}
輸入?yún)?shù)head為鏈表頭指針,輸入?yún)?shù)k為要查詢(xún)的結(jié)點(diǎn)的序號(hào)。通過(guò)序號(hào)進(jìn)行多次循環(huán),獲得指向該結(jié)點(diǎn)的指針,然后返回指針。
按照關(guān)鍵字查詢(xún)
即根據(jù)鏈表中結(jié)點(diǎn)的某一個(gè)關(guān)鍵字進(jìn)行查詢(xún),我們以查詢(xún)學(xué)生的姓名(name)為例,其示例代碼如下:
CLType *CLFindNodeKey(CLType *head,string name)
{
CLType * htemp;
htemp = head; //保存鏈表頭指針
while(htemp)
{
if(htemp->nodeData.name == name) //當(dāng)結(jié)點(diǎn)關(guān)鍵字和傳入關(guān)鍵字相同
{
return htemp; //返回該結(jié)點(diǎn)指針
}
htemp = htemp->nextNode;
}
return NULL;
}
輸入?yún)?shù)head為鏈表頭指針,輸入?yún)?shù)name為要查詢(xún)的同學(xué)的姓名。遍歷查詢(xún)所有的同學(xué)的姓名,當(dāng)有結(jié)點(diǎn)的姓名與所查詢(xún)的姓名相同的時(shí)候,則返回該結(jié)點(diǎn)的指針。
插入結(jié)點(diǎn)
插入結(jié)點(diǎn)就是在鏈表中間部分的位置增加一個(gè)結(jié)點(diǎn)。
插入結(jié)點(diǎn)的步驟如下:
(1)分配內(nèi)存空間,保存新增的結(jié)點(diǎn)。
(2)找到要插入的邏輯位置,也就是找到插在那個(gè)結(jié)點(diǎn)的后面。
(3)修改插入位置結(jié)點(diǎn)的指針,使其指向新增結(jié)點(diǎn),而使新增結(jié)點(diǎn)指向原插入位置所指向的結(jié)點(diǎn)。
示例代碼如下:
CLType *CLInsertNode(CLType *head,int k,Data nodeData)
{
CLType *node,*nodetemp;
if(!(node = new CLType)) //申請(qǐng)結(jié)點(diǎn)
{
cout<<"申請(qǐng)內(nèi)存失敗"<<endl;
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)中的數(shù)據(jù)
nodetemp=CLFindNodeNum(head,k-1);//通過(guò)按照結(jié)點(diǎn)序號(hào)查找函數(shù)找到插入點(diǎn)前一個(gè)結(jié)點(diǎn)(關(guān)鍵結(jié)點(diǎn))
if(nodetemp)
{
node->nextNode = nodetemp->nextNode;//插入的結(jié)點(diǎn)指向關(guān)鍵結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)
nodetemp->nextNode = node; //關(guān)鍵結(jié)點(diǎn)指向插入點(diǎn)
}
else
{
cout<<"沒(méi)有找到正確的插入位置"<<endl;
delete node;
}
}
return head; //返回頭指針
}
輸入?yún)?shù)head為鏈表頭指針,輸入?yún)?shù)findkey為鏈表中進(jìn)行查找的結(jié)點(diǎn)關(guān)鍵字,找到該結(jié)點(diǎn)后將在該結(jié)點(diǎn)后面添加結(jié)點(diǎn)數(shù)據(jù),nodeData為新增結(jié)點(diǎn)的數(shù)據(jù)。程序中首先使用new申請(qǐng)結(jié)點(diǎn)空間,然后調(diào)用CLFindNodeNum函數(shù)查找指向結(jié)點(diǎn),然后執(zhí)行插入操作。
刪除結(jié)點(diǎn)
刪除結(jié)點(diǎn)就是將鏈表中的某個(gè)結(jié)點(diǎn)數(shù)據(jù)刪除,并不影響其位置前后的結(jié)點(diǎn)。
刪除結(jié)點(diǎn)操作的步驟如下:
(1)查找需要?jiǎng)h除的結(jié)點(diǎn)。
(2)使前一結(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一結(jié)點(diǎn)。
(3)刪除該結(jié)點(diǎn)
刪除結(jié)點(diǎn)可以通過(guò)結(jié)點(diǎn)的序號(hào)確定要?jiǎng)h除的結(jié)點(diǎn),當(dāng)然也可以通過(guò)結(jié)點(diǎn)的關(guān)鍵字確定要?jiǎng)h除的結(jié)點(diǎn)。
我們以通過(guò)關(guān)鍵字刪除結(jié)點(diǎn)為例,示例代碼如下:
int CLDeleteNode(CLType *head,string name)
{
CLType *node,*htemp; //node用于刪除結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)
htemp = head;
node = head;
while(htemp)
{
if(htemp->nodeData.name == name)//找到關(guān)鍵字,執(zhí)行刪除操作
{
node->nextNode = htemp->nextNode;//使前一結(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一結(jié)點(diǎn)
delete htemp; //釋放該結(jié)點(diǎn)的空間(即,刪除了結(jié)點(diǎn))
return 1;
}
else
{
node = htemp; //指向當(dāng)前節(jié)點(diǎn)
htemp = htemp->nextNode; //指向下一個(gè)結(jié)點(diǎn)
}
}
return 0; //刪除失敗
}
head為鏈表頭指針,輸入?yún)?shù)name表示要?jiǎng)h除的同學(xué)的姓名。程序中,通過(guò)一個(gè)循環(huán),按關(guān)鍵字在整個(gè)鏈表中查找要?jiǎng)h除的結(jié)點(diǎn)。如果找到被刪除的結(jié)點(diǎn),則設(shè)置上一結(jié)點(diǎn)(node指針?biāo)附Y(jié)點(diǎn))指向當(dāng)前結(jié)點(diǎn)(h指針?biāo)附Y(jié)點(diǎn))的下一個(gè)結(jié)點(diǎn),即在邏輯上將該結(jié)點(diǎn)刪除,然后對(duì)該結(jié)點(diǎn)執(zhí)行delete操作,釋放結(jié)點(diǎn)占用的內(nèi)存空間,即在物理上將其刪除。
計(jì)算鏈表長(zhǎng)度
計(jì)算鏈表長(zhǎng)度也就是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的數(shù)量。順序表中計(jì)算鏈表長(zhǎng)度比較方便,但在鏈表中鏈表的長(zhǎng)度卻需要通過(guò)遍歷鏈表來(lái)獲得,因?yàn)殒湵碓谖锢砩喜皇沁B續(xù)存儲(chǔ)的。
示例代碼如下:
int CLLength(CLType *head)
{
CLType *htemp;
int Len = 0;
htemp = head;
while(htemp) //遍歷整個(gè)數(shù)組
{
Len++; //累加結(jié)點(diǎn)的數(shù)量
htemp = htemp->nextNode; //處理下一個(gè)結(jié)點(diǎn)
}
return Len;
}
參數(shù)head是鏈表的頭指針,程序中通過(guò)while來(lái)遍歷指針,Len作為計(jì)數(shù)器,通過(guò)記錄循環(huán)的次數(shù),來(lái)獲得鏈表的長(zhǎng)度,當(dāng)指針為NULL時(shí)截止,然后返回計(jì)數(shù)器的值。
顯示所有結(jié)點(diǎn)
遍歷所有的結(jié)點(diǎn),并輸出。
void CLAllNode(CLType *head)
{
CLType *htemp;
htemp = head;
while(htemp) //遍歷整個(gè)數(shù)組
{
nodeData = htemp->nodeData; //獲取結(jié)點(diǎn)數(shù)據(jù)
cout<<"key:"<<nodeData.key<<",name:"<<nodeData.name<<",age:"<<nodeData.age<<endl;
htemp = htemp->nextNode; //處理下一個(gè)結(jié)點(diǎn)
}
}
輸出結(jié)點(diǎn)的函數(shù),沒(méi)有返回值,所有定義為void。每次都通過(guò)CLType類(lèi)型的結(jié)點(diǎn)獲得其nodeData的值
鏈表操作完整示例
完整示例的代碼比較長(zhǎng),要耐心看哈…… :)
#include<iostream>
#include<string>
using namespace std;
struct Data //數(shù)據(jù)結(jié)點(diǎn)類(lèi)型
{
string key; //關(guān)鍵字
string name;
int age;
};
struct CLType //定義鏈表結(jié)構(gòu)
{
Data nodeData;
CLType *nextNode;
};
CLType * CLAddEnd(CLType *head,Data nodeData)
{
CLType *node,*htemp;
if(!(node = new CLType))
{
cout<<"分配內(nèi)存失?。?<<endl; //分配內(nèi)存失敗
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)數(shù)據(jù)
node->nextNode = NULL; //設(shè)置結(jié)點(diǎn)指針為空,即作為表尾
if(head == NULL) //當(dāng)鏈表是空表的時(shí)候
{
head = node;
return head;
}
htemp = head;
while(htemp->nextNode != NULL) //查找鏈表的末尾
{
htemp = htemp->nextNode;
}
htemp->nextNode = node;
return head;
}
}
CLType *CLAddFirst(CLType *head,Data nodeData)
{
CLType *node;
if(!(node = new CLType))
{
cout<<"分配內(nèi)存失敗"<<endl;
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)數(shù)據(jù)
node->nextNode = head; //指向頭指針?biāo)赶虻闹羔?
head = node; //頭指針指向新增結(jié)點(diǎn)
return head;
}
}
CLType *CLFindNodeNum(CLType *head,int k)
{
CLType *htemp;
int i = 1;
htemp = head; //保存鏈表頭指針
for(i = 1;i<k&&htemp;i++) //找到該結(jié)點(diǎn)
{
htemp = htemp->nextNode;
}
return htemp; //返回指向第k個(gè)結(jié)點(diǎn)的指針
}
CLType *CLFindNodeName(CLType *head,string name)
{
CLType * htemp;
htemp = head; //保存鏈表頭指針
while(htemp)
{
if(htemp->nodeData.name == name) //當(dāng)結(jié)點(diǎn)關(guān)鍵字和傳入關(guān)鍵字相同
{
return htemp; //返回該結(jié)點(diǎn)指針
}
htemp = htemp->nextNode;
}
return NULL;
}
CLType *CLInsertNode(CLType *head,int k,Data nodeData)
{
CLType *node,*nodetemp;
if(!(node = new CLType)) //申請(qǐng)結(jié)點(diǎn)
{
cout<<"申請(qǐng)內(nèi)存失敗"<<endl;
return NULL;
}
else
{
node->nodeData = nodeData; //保存結(jié)點(diǎn)中的數(shù)據(jù)
nodetemp=CLFindNodeNum(head,k-1); //通過(guò)按照結(jié)點(diǎn)序號(hào)查找函數(shù)找到插入點(diǎn)前一個(gè)結(jié)點(diǎn)(關(guān)鍵結(jié)點(diǎn))
if(nodetemp)
{
node->nextNode = nodetemp->nextNode; //插入的結(jié)點(diǎn)指向關(guān)鍵結(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)
nodetemp->nextNode = node; //關(guān)鍵結(jié)點(diǎn)指向插入點(diǎn)
}
else
{
cout<<"沒(méi)有找到正確的插入位置"<<endl;
delete node;
}
}
return head; //返回頭指針
}
int CLDeleteNode(CLType *head,string name)
{
CLType *node,*htemp; //node用于刪除結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)
htemp = head;
node = head;
while(htemp)
{
if(htemp->nodeData.name == name) //找到關(guān)鍵字,執(zhí)行刪除操作
{
node->nextNode = htemp->nextNode; //使前一結(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一結(jié)點(diǎn)
delete htemp; //釋放該結(jié)點(diǎn)的空間(即,刪除了結(jié)點(diǎn))
return 1;
}
else
{
node = htemp; //指向當(dāng)前節(jié)點(diǎn)
htemp = htemp->nextNode; //指向下一個(gè)結(jié)點(diǎn)
}
}
return 0; //刪除失敗
}
int CLLength(CLType *head)
{
CLType *htemp;
int Len = 0;
htemp = head;
while(htemp) //遍歷整個(gè)數(shù)組
{
Len++; //累加結(jié)點(diǎn)的數(shù)量
htemp = htemp->nextNode; //處理下一個(gè)結(jié)點(diǎn)
}
return Len;
}
void CLAllNode(CLType *head)
{
CLType *htemp;
Data nodeData;
htemp = head;
cout<<"鏈表長(zhǎng)度為:"<<CLLength(head)<<endl;
while(htemp) //遍歷整個(gè)數(shù)組
{
nodeData = htemp->nodeData; //獲取結(jié)點(diǎn)數(shù)據(jù)
cout<<"key:"<<nodeData.key<<",name:"<<nodeData.name<<",age:"<<nodeData.age<<endl;
htemp = htemp->nextNode; //處理下一個(gè)結(jié)點(diǎn)
}
}
int main()
{
CLType *node,*head = NULL;
Data nodeData;
string name;
int k;
cout<<"請(qǐng)先輸入鏈表中的數(shù)據(jù),格式為:學(xué)號(hào),姓名,年齡(年齡為0時(shí)停止輸入)"<<endl;
while(1)
{
cin>>nodeData.key>>nodeData.name>>nodeData.age;
if(nodeData.age==0)break;
head=CLAddEnd(head,nodeData); //在鏈表的尾部添加結(jié)點(diǎn)
}
CLAllNode(head); //顯示所有的結(jié)點(diǎn)
//演示在頭部插入數(shù)據(jù)
cout<<"請(qǐng)輸入一個(gè)結(jié)點(diǎn),并在鏈表的頭部插入"<<endl;
cin>>nodeData.key>>nodeData.name>>nodeData.age;
head=CLAddFirst(head,nodeData);
CLAllNode(head);
//演示在中間位置插入一個(gè)數(shù)據(jù)
cout<<"請(qǐng)輸入一個(gè)在鏈表內(nèi)部插入的結(jié)點(diǎn):"<<endl;
cin>>nodeData.key>>nodeData.name>>nodeData.age;
cout<<"請(qǐng)輸入插入點(diǎn)的位置:";
cin>>k;
head=CLInsertNode(head,k,nodeData);
CLAllNode(head);
//演示按照序號(hào)查詢(xún)數(shù)據(jù)
cout<<"請(qǐng)輸入按照結(jié)點(diǎn)查詢(xún)的一個(gè)結(jié)點(diǎn)序號(hào):";
cin>>k;
node=CLFindNodeNum(head,k);
cout<<"您所查詢(xún)的結(jié)點(diǎn)是:"<<endl;
cout<<"key:"<<node->nodeData.key<<",name:"<<node->nodeData.name<<",age:"<<node->nodeData.age<<endl;
//演示按照姓名查詢(xún)數(shù)據(jù)
cout<<"請(qǐng)輸入一個(gè)按照姓名查詢(xún)的一個(gè)同學(xué)的姓名:";
cin>>name;
node=CLFindNodeName(head,name);
cout<<"您所查詢(xún)的結(jié)點(diǎn)是:"<<endl;
cout<<"key:"<<node->nodeData.key<<",name:"<<node->nodeData.name<<",age:"<<node->nodeData.age<<endl;
//演示刪除數(shù)據(jù)信息
cout<<"請(qǐng)輸入結(jié)點(diǎn)中的一個(gè)同學(xué)中的名字,系統(tǒng)會(huì)刪除他的信息:";
cin>>name;
if(CLDeleteNode(head,name))cout<<"數(shù)據(jù)刪除成功!"<<endl;
CLAllNode(head);
return 0;
}
程序運(yùn)行結(jié)果示例:
欄 目:C語(yǔ)言
下一篇:C++類(lèi)中的常數(shù)據(jù)成員與靜態(tài)數(shù)據(jù)成員之間的區(qū)別
本文標(biāo)題:C++中單鏈表的建立與基本操作
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3969.html
您可能感興趣的文章
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 01-10深入理解C++中常見(jiàn)的關(guān)鍵字含義
- 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10深入理解鏈表的各類(lèi)操作詳解
- 01-10用C++實(shí)現(xiàn)DBSCAN聚類(lèi)算法
- 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
- 01-10用C語(yǔ)言實(shí)現(xiàn)單鏈表的各種操作(一)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)