间接寻址--简单操作
以下是某同学的成绩,通过间接寻址实现增加,删除,查询等功能
#include
using namespace std;
# define MAX 100
class Node{
friend class List;
private:
int data;
Node* next;
};
class List{
public:
List();
List(int a[],int n);
~List();
int length();
int Get(int i);
int Locate(int x);
void Insert(int i,int x);
int Delete(int i);
void Print();
private:
Node*first,*total[MAX];
};
List::List(){
first=new Node;
first->next=NULL;
}
List::List(int a[],int n){//头插法新建链表
if (n > MAX) throw("溢出");
Node*s;
int i;
first=new Node;
first->next=NULL;
for(i=0;
idata=https://www.it610.com/article/a[i];
s->next=first->next;
first->next=s;
}
}
void List::Print(){//遍历链表
Node*p;
p=first->next;
while(p!=NULL)
{
coutnext;
}
}int List::length(){//求表长
Node*p;
int count;
p=first->next;
count=0;
while(p!=NULL)
{
p=p->next;
count++;
}
return count;
}
int List::Get(int i){//按位查找
Node*p;
int count;
p=first->next;
count=1;
while(p!=NULL&&countnext;
count++;
}
if(p==NULL) throw"位置";
else returnp->data;
}int List::Locate(int x){//按值查找
Node*p;
int count;
p=first->next;
count=1;
while(p!=NULL)
{
if(p->data=https://www.it610.com/article/=x) return count;
p=p->next;
count++;
}
return0;
}void List::Insert(int i,int x){//插入
Node*p,*s;
int count;
p=first;
count=0;
while(p!=NULL&&countnext;
count++;
}
if(p==NULL) throw"位置";
else{
s=new Node;
s->data=https://www.it610.com/article/x;
s->next=p->next;
p->next=s;
}
}
int List::Delete(int i)//删除
{
Node *q,*p;
int x;
int count;
p=first;
count=0;
while(p!=NULL&&countnext;
count++;
}
if(p==NULL||p->next==NULL) throw"位置";
else{
q=p->next;
x=q->data;
p->next=q->next;
delete q;
return x;
}
} List::~List()//析构
{
Node*q;
while(first!=NULL)
{
q=first;
first=first->next;
delete q;
}
} int main()
{
int n,i,p,num,numb,se,x,a[100];
cout<<"请输入需要创建双链表的结点个数:"<>n;
cout<<"请输入需要创建的结点:"<>a[i];
}
List student(a,n);
cout<<"打印如下: "<>p>>num;
student.Insert(p,num);
student.Print();
cout<>numb;
cout<<"it's"<>se;
cout<<"打印链表值如下:"<>x;
cout<<"它的位置是: "<
实验结果如图:
文章图片
文章图片
实验心得:
对间接寻址的特在优势还不是很明白。在本次的实验中感觉和单链表的基本操作差不多。只是多了一个结点指针数组
【间接寻址--简单操作】。所以我会找时间实验别的东西。更明显体现间接寻址的优点所在。
推荐阅读
- 科学养胃,别被忽悠,其实真的很简单
- opencv|opencv C++模板匹配的简单实现
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 简单心理2019春A期+32+张荣
- 《算法》-图[有向图]
- android防止连续点击的简单实现(kotlin)
- 机器学习一些简单笔记
- Android超简单实现沉浸式状态栏
- v-charts简单使用
- 校园非自愿来访者辅导问句学习