首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

链表的实现(C++)(2)

链表的实现(C++)(2)

void list::insertlist(int aData,int bData)  //设aData是结点a中的数据,bData是结点b中的数据
{
Node*p,*q,*s;        //p指向结点a,q指向结点a_k,s指向结点b
s=(Node*)new(Node);  //动态分配一个新结点
s->Data=bData;   //设b为此结点
p=head;
if(head==NULL)  //若是空表,使b作为第一个结点
{
  head=s;
  s->next=NULL;
}
else
  if(p->Data==aData)   //若a是第一个结点
  {
   s->next=p;
   head=s;
  }
  else
  {
   while(p->Data!=aData && p->next!=NULL)//查找结点a
   {
    q=p;
    p=p->next;
   }
   if(p->Data==aData)     ///若有结点a
   {
    q->next=s;
    s->next=p;
   }
   else                    //若没有结点a;
   {
    p->next=s;
    s->next=NULL;
   }
  }
}
void list::deletelist(int aData)  //设aData是要删除的结点a中的数据成员
{
Node*p,*q;            //p用于指向结点a,q用于指向结a的前一个结点
p=head;
if(p==NULL)  //若是空表
  return;
if(p->Data==aData)  //若a是第一个结点
{
  head=p->next;
  delete p;
}
else
{
  while(p->Data!=aData&&p->next!=NULL)  //查找结点a
  {
   q=p;
   p=p->next;
  }
  if(p->Data==aData)    //若有结点a
  {
   q->next=p->next;
   delete p;
  }
}
}
void list:utputlist()
{
Node*current=head;
while(current!=NULL)
{
  cout<Data<<" ";
  current=current->next;
}
cout<<ENDL;
}
void main()
{
list A,B;
int Data[10]={25,41,16,98,5,67,9,55,1,121};
A.insertlist(0,Data[0]); //建立链表A首结点
for(int i=1;i<10;i++)
  A.insertlist(0,Data[i]); //顺序向后插入
cout<<"\n链表A:";
A.outputlist();
  A.deletelist(Data[7]);
cout<<"删除元素Data[7]后";
A.outputlist();
B.insertlist(0,Data[0]); //建立链表B首结点
for(i=0;i<10;i++)
  B.insertlist(B.gethead()->Data,Data[i]); //在首结点处顺序向后插入
    cout<<"\n链表B:";
B.outputlist();
B.deletelist(67);
    cout<<"删除元素67后";
B.outputlist();
}
程序运行结果为
链表A;25,41,16,98,5,67,9,55,1,121
删除元素Data[7]后;
25,41,16,98,5,67,9,1,121
链表B;121,1,55,9,67,5,98,16,41,25,
删除元素67后;
121,1,55,9,5,98,16,41,25, </ENDL;

     下面是杨辉三角的代码:
#include
#include
using namespace std;
int main()
{
const int n=11;
int i,j,a[n][n];
for(i=1;i<N;I++)
     {
  a[i][i]=1;
  a[i][1]=1;
    }
for(i=3;i<N;I++)
     {
  for(j=2;j<=i-1;j++)  
  a[i][j]=a[i-1][j-1]+a[i-1][j];  
}
for(i=1;i<N;I++)
     {
  for(j=1;j<=i;j++)
  cout<<SETW(5)<<A[I][J]<<" ?;
   cout<<ENDL;
     }
cout<<ENDL;
  return 0;
} </ENDL;
</ENDL;
</SETW(5)<<A[I][J]<</N;I++)
</N;I++)
</N;I++)
继承事业,薪火相传
返回列表