-
bool List::GetElem(int i, Node *pNode){
if(i<0||i>=m_iength){
return false;
}
Node *currentNode=m_pList;
for(int k=0;k<i;k++){
currentNode=currentNode->next;
}
while(k<i){
currentNode=currentNode->next;
k++;}
pNode->data=currentNode->data;
retrun true;
}
int List::LocateElem(Node *pNode){
int k=0;
Node *currentNode=m_pList;
while(currentNode->next!=null){
currentNode=currentNode->next;
if(currenetNode->data==pNode->data){
return k;
}
k++;
}
return -1;
}
}
查看全部 -
bool List::ListDelete(int i,Node *pNode){
if(i<0||i>=m_iLength){
return false;}
Node *temp = m_pList;//找到头结点
int k=0;
while( k<i){
Node *currentNode=temp;
temp=temp->next;
k++;
}
currentNode->next=temp->next;
temp->data=pNode->data;
delete temp;
temp=null;
m_iLength--;
return true;
}
查看全部 -
21341231
查看全部 -
【顺序表】
优点:遍历、寻址非常快
缺点:插入元素
【单链表】头结点结点……NULL
结点=数据域+指针域
【循环链表】头结点结点……尾结点头结点
【双向链表】结点=指针域A(正向)+数据域+指针域B(反向)
【静态链表】结点=“指针域”+数据域。(数组本身具有天然的编号)
“指针”=0,链表结束了
查看全部 -
前驱(指定元素的前一个元素)、后继
顺序表/线性表的基础操作:创建、销毁、清空、判空、判满、获取长度、获取指定元素、定位、获取前驱、获取后继、删除元素、插入元素、遍历
查看全部 -
【线性表】n个数据元素的有限序列
1、顺序表:使用数组,访问速度快,搜索能力强(数组本身就有下标)
2、链表:静态链表、单链表、循环链表、双向链表
应用:通讯录、一元多项式
查看全部 -
栈与队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除,二者的区别是:栈只允许在表的一端进行插入和删除操作,是一种“后进先出”的线性表;而队列是允许在一端进行插入操作,在别一端进行删除和操作,是一种”先进先出“的线性表
线性表:线性表是N个数据元素的有限序列。数据元素包含的可以是简单的数据,也可以是复杂的数据
线性表包括:顺序表和链表
查看全部 -
线性表是n个数据元素的有限序列
查看全部 -
顺序表需要预先规定大小,而链表不需要
查看全部 -
在LocateElem成员函数中,因为首结点的数据域无意义,所以从第二个结点开始对比。所以先指到下一个指针域,再比较。
查看全部 -
1
查看全部 -
不要忘记成员函数声明之前,要加上类名+::
查看全部 -
List:: 表示声明为list这个类的函数
查看全部 -
删除算法
查看全部 -
插入算法
查看全部
举报