對單鏈表的相關介紹在這裡。單鏈表——封裝了乙個類(1)中實現了一種類的封裝,不過其中結點的插入仍然在鍊錶頭部進行,所以tail
指標除了帶來一些小麻煩外,形同虛設。在此,將tail
指標利用起來,讓每乙個結點都從鍊錶的尾部插入,因為一開始,讓tail
與head
都指向了頭結點,所以不用考慮插入的結點是否是整個鍊錶中的第乙個結點了。
listclass.h
#ifndef _list_class_h_
#define _list_class_h_
#include
#include
#include
#include
#include
using namespace std;
typedef struct node node;
class listclass;
listclass::listclass()
}listclass::~listclass()
}void listclass::createlist(int
*rawdata, int n)
for(i=0;iif(!newnode)
newnode->data = rawdata[i];
newnode->next = null;
tail->next = newnode;
tail = newnode;
head->data ++;
number ++;
}}int listclass::getlength()
bool listclass::insertnode(int e)
newnode = new node;
if(!newnode)
newnode->data = e;
newnode->next = null;
tail->next = newnode;
tail = newnode;
head->data ++;
number ++;
return true;
}bool listclass::deletenode(int idx)
length = getlength();
if(idx>=length)
p = head;
for(i=0;ip->next = curnode->next;
curnode->next = null;
delete curnode;
head->data --;
number --;
break;
}p = curnode;
}return true;
}void listclass::reverselist()
if(getlength()<=1)
p1 = head->next;
p2 = p1->next;
p1->next = null;
tail = p1;
while(p2)
head->next = p1;
}void listclass::sortlist()
length = getlength();
if(length
<= 1)
for(i=1;ip = q;
q = p->next;}}
}void listclass::emptylist()
curnode = head->next;
while(curnode)
head->data = 0;
tail = head;
}void listclass::printlist()
curnode = head->next;
while(curnode)
cout << endl << "tail node data : "
<< tail->data << endl;
cout << endl;
}#endif
test.cpp
#include "listclass.h"
int main()
; list.createlist(rawdata, sizeof(rawdata)/sizeof(int));
list.printlist();
list.insertnode(10);
list.printlist();
list.deletenode(0);
list.printlist();
list.reverselist();
list.printlist();
list.sortlist();
list.printlist();
list.emptylist();
list.printlist();
return
0;}
乙個封裝了localStorage的增刪改查的方法
localstorage的增刪改查都其實比較簡單,每次需要判斷瀏覽器是否禁用,這挺麻煩的 而且沒有像cookie一樣的,自動過期時間,長期下去會有垃圾資料在裡面 我們知道android的系統只支援5m儲存空間,iphone是10mb,一旦超過限制會提示使用者,甚至報錯。一 包含一下功能 1 定時清理...
用C 封裝了乙個簡單的「按鈕」類
功能簡單,僅僅實現按鈕的按下和鬆開的效果,按鈕具體實現什麼功能就由開發者自己定義了 1 include 2 include 3 include 4using namespace std 5class botton 25void lbotton down 滑鼠左鍵按下 26 35void lontto...
封裝了乙個簡單的登錄檔操作類
if defined afx registry h e0610a5d 7166 4d02 9d7e 11af7cf8e229 included define afx registry h e0610a5d 7166 4d02 9d7e 11af7cf8e229 included 建立新鍵的返回值 i...