單鏈表 封裝了乙個類 2

2021-07-04 13:37:24 字數 2543 閱讀 8824

對單鏈表的相關介紹在這裡。單鏈表——封裝了乙個類(1)中實現了一種類的封裝,不過其中結點的插入仍然在鍊錶頭部進行,所以tail指標除了帶來一些小麻煩外,形同虛設。在此,將tail指標利用起來,讓每乙個結點都從鍊錶的尾部插入,因為一開始,讓tailhead都指向了頭結點,所以不用考慮插入的結點是否是整個鍊錶中的第乙個結點了。

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...