永发信息网

编写程序,实现双链表的抽象数据类型,并进行测试

答案:1  悬赏:0  手机版
解决时间 2021-02-08 06:03
  • 提问者网友:疯孩纸
  • 2021-02-07 09:48
编写程序,实现双链表的抽象数据类型,并进行测试
最佳答案
  • 五星知识达人网友:千夜
  • 2021-02-07 10:48
这是我写的C++代码,看行不行!
#include <iostream>
using namespace std;


typedef struct duNode
{
char data;
struct duNode *prior;
struct duNode *next;
}duNode;
typedef duNode *duLinklist;//指针类型,故访问它的成员用“->”。


void initLinklist_Du(duLinklist &L)//此处叫做引用调用,即实参和形参共用一个地址。
{
L=new duNode;
L->next=L;
L->prior=L;
}


duNode *getElemP_D(duLinklist L,int i)
{
duNode *p;
int count;

p=L->next;
count=1;
while(p!=L&&count<i-1)
{
p=p->next;
count++;
}

if(p==L||count>i-1)
return NULL;
else
return p->next;
}


int lengthLinklist_Du(duLinklist &L)
{
duNode *p;
int count;

p=L->next;
count=0;

while(p!=L)
{
p=p->next;
count++;
}

return count;
}


void insertList_Du1(duLinklist &L,int i,char x)
{
duNode *p;
duNode *s;
p=getElemP_D(L,i);
if(p==NULL)
cout<<"Poision Error!";

s=new duNode;
s->data=x;
s->prior=p->prior;
s->next=p;
p->prior->next=s;
p->prior=s;
}


void insertList_Du2(duLinklist &L,int i,char x)
{
duNode *p;
duNode *q;
p=getElemP_D(L,i);
if(p==NULL)
cout<<"Poision Error!";

q=new duNode;
q->data=x;
q->prior=p;//是否可以写成q->prior=p->next->prior?
q->next=p->next;
p->next->prior=q;
p->next=q;
}


void deleteList_Du(duLinklist &L,int i)
{
duNode *p;
p=getElemP_D(L,i);
if(p==NULL)
cout<<"Poision Error!";
p->next->prior=p->prior;
p->prior->next=p->next;

delete p;

}


void creatLinklist_Du(duLinklist &L,int n)
{
duNode *p;
duNode *s;
initLinklist_Du(L);
p=L;

int i;
for(i=0;i<n;i++)
{
s=new duNode;
cin>>s->data;
s->next=L;
s->prior=p;
p->next=s;
L->prior=s;
p=s;
}
}


void outputLinklist_Du(duLinklist &L)
{
duNode *p;
p=L->next;

int i;
for(i=0;i<lengthLinklist_Du(L);i++)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;

}

void main()
{
duLinklist L;
creatLinklist_Du(L,10);

insertList_Du1(L,2,'a');
outputLinklist_Du(L);

insertList_Du2(L,2,'b');
outputLinklist_Du(L);

deleteList_Du(L,11);

outputLinklist_Du(L);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯