✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
AI编程基础
->
c++编程基础
用C++的类和结构体DIY静态链表及其接口函数(二)
2014-11-24 11:12:10
·
作者:
·
浏览:
4
标签:
类和
结构
DIY
静态
及其
接口
函数
:popback(staticlinklist* ptr) { ptr->erase(ptr,ptr->getlength(ptr) - 1); // ptr->length--; return 0; } void staticlinklist::pushfront(staticlinklist* ptr, int n) { ptr->insert(ptr,0,n); // ptr->length++; } void staticlinklist::pushback(staticlinklist* ptr,int n) { ptr->insert(ptr,ptr->getlength(ptr),n); // ptr->length++; } int staticlinklist::getmember(staticlinklist* ptr, int pos) { if(pos > ptr->getlength(ptr)) { cout<<位置非法<
next; for(int i = 0; i < pos; i++) { current = ptrnode[current].next; } return ptrnode[current].data; } int staticlinklist::erase(staticlinklist* ptr,int pos) { if(pos > ptr->getlength(ptr)) { cout<<此位置不合法<
next; int back ; if(pos == 0) { ptrnode[current].used = false; root->next = ptrnode[current].next; ptrnode[current].next = -1; ptr->length--; return 0; } else { for(int i = 0; i < pos; i++) { back = current; current = ptrnode[current].next; } ptrnode[back].next = ptrnode[current].next; ptrnode[current].next = -1; ptrnode[current].used = false; ptr->length--; return 0; } } } void staticlinklist::setcapacity(staticlinklist* ptr,int capa) { ptr->capacity = capa; } void staticlinklist::display(staticlinklist* ptr) { int index = root->next; for(int i = 0; i < ptr->getlength(ptr); i++) { cout<
length--; } void staticlinklist::increaselength(staticlinklist* ptr) { ptr->length++; } int staticlinklist::getlength(staticlinklist* ptr) { return ptr->length; } int staticlinklist::getcapacity(staticlinklist* ptr) { return ptr->capacity; } int staticlinklist::insert(staticlinklist* ptr,int pos,int n) { if(pos > ptr->length) { cout<<不合法的位置<
getlength(ptr); ptrnode[index].data = n;*/ int i =0; // while((ptrnode[i++].next == -1) && (ptrnode[i].used == true)); while(ptrnode[i++].used == true); int index = i -1 ; ptrnode[index].data = n; int current = root->next ; int back; if(root->next == -1) //链表为空 { if(pos == 0) { root->next = index; ptrnode[index].used = true; ptr->increaselength(ptr); return 0; } else { cout<
next; root->next = index; ptrnode[index].used = true; ptr->increaselength(ptr); return 0; } for(int i = 0; i < pos; i++)//链表不为空,插入位置亦不为0 { back = current; current = ptrnode[current].next; } ptrnode[back].next = index; ptrnode[index].used = true; ptrnode[index].next = current; ptr->increaselength(ptr); return 0; } } int main() { int n; cout<<静态链表的容量是多大?请输入:<
>n; // slinklist->setcapacity(slinklist,n); staticlinklist* slinklist = new staticlinklist(n); int m; cout<<你要存储多少个元素?请输入:<
>m; for(int i = 0; i < m; i++) { slinklist->insert(slinklist,i,i); } slinklist->display(slinklist); slinklist->insert(slinklist,2,100); cout<<在位置2上插入100后静态链表为:<
display(slinklist); slinklist->erase(slinklist,3); cout<<把位置3上面的元素删除后静态链表为:<
display(slinklist); slinklist->erase(slinklist,3); cout<<把位置3上面的元素删除后静态链表为:<
display(slinklist); cout<<使用成员函数输出链表数据<
getlength(slinklist); i++) { cout<
getmember(slinklist,i)<< ; } cout<
popback(slinklist); cout<<使用popback后静态链表为<
display(slinklist); slinklist->popfront(slinklist); cout<<使用popfront后静态链表为<
display(slinklist); slinklist->pushfront(slinklist,88); cout<<使用pushfront 88 后静态链表为<
display(slinklist); slinklist->pushback(slinklist,99); cout<<使用pushback 99 后静态链表为<
display(slinklist); return 0; }
测试结果为:
经测试初步实现功能,嘎嘎~
首页
上一页
1
2
下一页
尾页
2
/2/2