亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? linklist3.txt

?? C++描述的數(shù)據(jù)結(jié)構(gòu)內(nèi)容,在C++builder的環(huán)境中運行,這是第二部分
?? TXT
字號:
//單鏈表的類定義linklist3.h
#ifndef linklist3H
#define linklist3H
#define LEN 30
//定義ElemType為int
typedef int ElemType;
//單鏈表中結(jié)點的類型
typedef struct LNode{
  ElemType data;//值域
  LNode *next;  //指針域
}LNode;
class LinkList{
  LNode *head;
 public:
//不帶形參構(gòu)造函數(shù)
  LinkList();
//帶一個形參構(gòu)造函數(shù)
  LinkList(int);
//帶二個形參構(gòu)造函數(shù) ,n是初始化元素個數(shù),
//mark=0不排序,mark>0升序,mark<0降序
  LinkList(int n,int mark=0);
//復(fù)制構(gòu)造函數(shù)
  LinkList(LinkList& HL);
//析構(gòu)函數(shù)
  ~LinkList();
//清空單鏈表
  void ClearList();
//求單鏈表長度
  int ListSize();
//檢查單鏈表是否為空
  bool ListEmpty();
//返回單鏈表中指定序號的結(jié)點值
  ElemType GetElem(int pos);
//遍歷單鏈表
  void TraverseList(void f(ElemType &));
//從單鏈表中查找元素
  bool FindList(ElemType& item);
//更新單鏈表中的給定元素
  bool UpdateList(const ElemType& item,ElemType e);
//向單鏈表插入元素 , mark=0 插在表首,否則插在表尾
  void InsertList(ElemType item,int mark);
//從單鏈表中刪除元素 , mark為要刪除的第幾個元素
  bool DeleteList(ElemType& item,int mark);
//對單鏈表進行有序排列   mark>0 升序  否則降序
  void pailie(int mark=1);
//單鏈表la 和lb 的元素按值非遞減排列,兩個單鏈表
//合并后的鏈表也是一個有序的
  void MergeList_L(LinkList &la,LinkList &lb);
//對單鏈表進行有序輸出,mark=0不排序,mark>0升序,mark<0降序
  void OrderOutputList(int mark=0);
};
#endif
//linklist3.cpp
#include "linklist3.h"
LinkList::LinkList()//不帶形參構(gòu)造函數(shù)
{head=new LNode;
 head->next=NULL;
}
LinkList:: LinkList(int d1)//帶一個形參構(gòu)造函數(shù)
{head=new LNode;
 head->next = new LNode;
 head->next->data = d1;
 head->next ->next=NULL;
}
//帶二個形參構(gòu)造函數(shù)
LinkList::LinkList(int n,int mark)
{randomize();
 ElemType a[LEN+1];
 for(int i=1;i<=n;i++)
   a[i]=random(150+i);
 for(int i=1;i<n;i++)
 for(int j=1;j<=n-i;j++)
  {int t;
   if( mark>0&&a[j]>a[j+1]||mark<0&&a[j]<a[j+1])
    {t=a[j+1];
     a[j+1]=a[j];
     a[j]=t;
    }
  }
 head=new LNode;
 LNode *p=head,*q;
 for(int i=1;i<=n;i++)
  {q= new LNode;
   q->data =a[i];
   p->next =q;
   p=p->next;
  }
 p->next =NULL;
}
LinkList::LinkList(LinkList& HL)//復(fù)制構(gòu)造函數(shù)
{head=new LNode;
 head->next=NULL;
 LNode *p2=HL.head->next  ,*p1=head,*q;
 while( p2)
  {q= new LNode;
   q->data=p2->data ;
   p1->next =q;
   p1=q;
   p2=p2->next ;
  }
 p1->next =NULL;
}
LinkList::~LinkList()//析構(gòu)函數(shù)
{LNode *p=head->next ,*q;
 while(p)
  {q=p->next ;
   free(p);
   p=q;
  }
}
void LinkList::ClearList()//清空單鏈表
{LNode*p=head->next ,*q;
 while(p)
  {q=p->next;
   free(p);
   p=q;
  }
 head->next =NULL;
}
int LinkList::ListSize()//求單鏈表長度
{LNode*p=head->next ;
 int i=0;
 while(p)
  {i++;
   p=p->next ;}
 return i;
}
bool LinkList::ListEmpty()//檢查單鏈表是否為空
{return ListSize()==0;}
//返回單鏈表中指定序號的結(jié)點值
ElemType LinkList::GetElem(int pos)
{LNode*p=head->next ;
 int i=1;
 while(p)
  {if(i++==pos)return p->data ;
   p=p->next ;
  }
 return head->data ;
}
void LinkList::TraverseList(void f(ElemType &))//遍歷單鏈表
{LNode*p=head->next ;
 while(p)
  {f(p->data );
   p=p->next ;}
}
bool LinkList::FindList(ElemType& item)//從單鏈表中查找元素
{LNode*p=head->next ;
 while(p)
  {if(p->data==item)return 1;
   p=p->next ;}
 return 0;
}
//更新單鏈表中的給定元素
bool LinkList::UpdateList(const ElemType &item,ElemType e)
{LNode*p=head->next ;
 int flag=0;
 while(p)
  {if(p->data==item)
    {p->data=e;
     flag=1;}
   p=p->next ;}
 return flag;
}
//向單鏈表插入元素
void LinkList::InsertList(ElemType item,int mark)
{LNode *q= new LNode;
 q->data = item;
 if(mark==0)
  {q->next = head->next ;
   head->next=q;
   return;}
 LNode *p=head;
 while(p->next)
  {p=p->next ;}
 q->next =NULL;
 p->next =q;
}
//從單鏈表中刪除元素
bool LinkList::DeleteList(ElemType& item,int mark)
{if(ListEmpty()||mark<1||mark>ListSize())return 0;
 LNode *p=head,*q;
 for(int i=0;i<mark-1;i++)
   p=p->next;
 item=p->next->data;
 q=p->next->next ;
 free(p->next );
 p->next=q;
 return 1;
}
//對單鏈表進行有序排列mark>0升序,否則降序
void LinkList::pailie(int mark)
{ElemType a[LEN+1];
 LNode *p=head->next;
 int k ;
 for(k=1;p!=NULL;k++,p=p->next )
   a[k]=p->data;
 k--;
 for(int i=1;i<k;i++)
  for(int j=1;j<=k-i;j++)
   {int t;
    if( mark>0&&a[j]>a[j+1]||mark<0&&a[j]<a[j+1])
     {t=a[j+1];
      a[j+1]=a[j];
      a[j]=t;}}
 p=head->next;
 for(int j=1;j<=k;j++,p=p->next )
  p->data=a[j];
}
//單鏈表la 和lb 的元素按值非遞減排列,兩個單鏈表
//合并后的鏈表也是一個有序的
void LinkList::MergeList_L(LinkList &la,LinkList &lb)
{LNode *pa=la.head->next ,*pb=lb.head->next ,*p=head;
 while(pa&&pb)
  {LNode *q=new LNode;
   if(pa->data <pb->data )
    {q->data =pa->data;
     pa=pa->next ;
     p->next =q;
     p=q;}
   else
    {q->data =pb->data;
     pb=pb->next ;
     p->next =q;
     p=q;}
  }
 while(pa)
  {LNode *q=new LNode;
   q->data =pa->data;
   pa=pa->next ;
   p->next =q;
   p=q;}
 while(pb)
  {LNode *q=new LNode;
   q->data =pb->data;
   pb=pb->next ;
   p->next =q;
   p=q;}
 p->next =NULL;
}
//對單鏈表進行有序輸出
void LinkList::OrderOutputList(int mark)
{ElemType a[LEN+1];
 LNode *p=head->next;
 int k ;
 for( k=1;p!=NULL;k++,p=p->next )
   a[k]=p->data;
 k--;
 for(int i=1;i<k;i++)
  for(int j=1;j<=k-i;j++)
   {int t;
    if( mark>0&&a[j]>a[j+1]||mark<0&&a[j]<a[j+1])
     {t=a[j+1];
      a[j+1]=a[j];
      a[j]=t;}}
 for(int j=1;j<=k;j++)
  cout<<a[j]<<"  ";
}
//linklist3m.cpp
#include<iostream.h>
#include"linklist3.cpp"
void ff(int &a)//用于遍歷的函數(shù)
{cout<<a<<",";}
void main()
{cout<<"linklist3m.cpp運行結(jié)果:\n";
 int init_size,xu;
 cout<<"\n首先請構(gòu)造單鏈表list1";
 cout<<"\n初始化長度(1--30):";
 cin>>init_size;
 cout<<"是否排序:(=0不排序,=1升序,=-1降序):";
 cin>>xu;
 //構(gòu)造單鏈表list1調(diào)用二個形參構(gòu)造函數(shù)
 LinkList list1(init_size,xu);
 cout<<"\n單鏈表list1構(gòu)造成功!"<<"\n它是:";
 list1.TraverseList(ff);
 cout<<"\n它為空嗎?(1:是;0:不是):"<<list1.ListEmpty();
 cout<<"\n長度為:"<<list1.ListSize() ;
 int i;
 cout<<"\n請輸入你想得到第幾個元素的值(1--"<<init_size<<"):";
 cin>>i;
 cout<<"單鏈表list1中第"<<i<<"的值是"<<list1.GetElem(i);
 int it;
 cout<<"\n請輸入你想刪除第幾個元素的值(1--"<<init_size<<"):";
 cin>>i;
 list1.DeleteList(it,i);
 cout<<"\n單鏈表list1刪除第"<<i<<"個元素"<<"\'"<<it<<"\'"<<"后變?yōu)?";
 list1.TraverseList(ff); //對單鏈表list1每個數(shù)進行遍歷.
 int news,olds;
 cout<<"\n請輸入要被修改的元素:"; cin>>olds;
 cout<<"請輸入修改后要變成的元素:"; cin>>news;
 list1.UpdateList(olds,news);
 cout<<"\n修改后單鏈表list1變?yōu)?quot;;
 list1.TraverseList(ff);
 cout<<"\n下面請構(gòu)造單鏈表list2";
 cout<<"\n請輸入單鏈表list2初始化長度(1--30):";
 cin>>init_size;
 cout<<"請選擇是否排序:(=0不排序,=1 升序,=-1 降序):";
 cin>>xu;
 //構(gòu)造單鏈表list2調(diào)用二個形參構(gòu)造函數(shù)
 LinkList list2(init_size,xu);
 cout<<"\n單鏈表list2為:";
 list2.TraverseList(ff);
 LinkList list3;//構(gòu)造單鏈表list3 調(diào)用一個形參構(gòu)造函數(shù)
 list1.pailie(); //對單鏈表進行升序排列
 list2.pailie(); //對單鏈表進行升序排列
 list3.MergeList_L(list1,list2);//聯(lián)合list1和list2
 cout<<"\nlist1和list2聯(lián)合之后為list3:\n";
 list3.TraverseList(ff);
 cout<<"\n這時它為空嗎?(1:是;0:不是):"<<list3.ListEmpty();
 cout<<"\n長度為:"<<list3.ListSize() ;
 list3.ClearList();//清空單鏈表list3
 cout<<"\n清空單鏈表list3\n";
 cout<<"\n按回車鍵結(jié)束...";
 cin.get();cin.get();}
linklist3m.cpp運行結(jié)果:
首先請構(gòu)造單鏈表list1
初始化長度(1--30):10
是否排序:(=0不排序,=1升序,=-1降序):1
單鏈表list1構(gòu)造成功!
它是:8,16,24,42,90,97,109,111,111,125,
它為空嗎?(1:是;0:不是):0
長度為:10
請輸入你想得到第幾個元素的值(1--10):7
單鏈表list1中第7的值是109
請輸入你想刪除第幾個元素的值(1--10):5
單鏈表list1刪除第5個元素'90'后變?yōu)?
8,16,24,42,97,109,111,111,125,
請輸入要被修改的元素:109
請輸入修改后要變成的元素:98
修改后單鏈表list1變?yōu)?,16,24,42,97,98,111,111,125,
下面請構(gòu)造單鏈表list2
請輸入單鏈表list2初始化長度(1--30):7
請選擇是否排序:(=0不排序,=1 升序,=-1 降序):-1
單鏈表list2為:148,121,62,47,26,23,4,
list1和list2聯(lián)合之后為list3:
4,8,16,23,24,26,42,47,62,97,98,111,111,121,125,148,
這時它為空嗎?(1:是;0:不是):0
長度為:16
清空單鏈表list3
按回車鍵結(jié)束...

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情五月婷婷综合网| 亚洲国产精品人人做人人爽| 激情亚洲综合在线| 日韩午夜激情视频| 国产一区在线不卡| 国产精品网站在线观看| 波多野结衣在线aⅴ中文字幕不卡| 亚洲视频一二三| 精品视频1区2区3区| 久久激情综合网| 欧美国产精品v| 欧美在线影院一区二区| 日本不卡一二三区黄网| 国产亚洲一二三区| 色综合天天综合网国产成人综合天 | 首页国产丝袜综合| 欧美一区二区视频观看视频| 国产在线精品一区二区夜色| 国产精品第五页| 8v天堂国产在线一区二区| 国产一区二区91| 亚洲精品乱码久久久久久| 777午夜精品免费视频| 国产福利91精品| 亚洲福利视频导航| 久久久久久久久久久电影| 色综合天天性综合| 久久机这里只有精品| 亚洲婷婷国产精品电影人久久| 欧美三级视频在线播放| 国产精品正在播放| 水蜜桃久久夜色精品一区的特点| 国产日韩欧美一区二区三区综合 | 欧美性色黄大片| 国产一区二区剧情av在线| 亚洲最新视频在线观看| 久久久久久亚洲综合影院红桃| 欧美亚洲综合在线| 成人免费视频一区二区| 蜜桃av一区二区三区| 最新久久zyz资源站| 精品国产成人系列| 欧美调教femdomvk| 粉嫩高潮美女一区二区三区| 天天色图综合网| 18成人在线观看| 久久午夜电影网| 欧美电影在线免费观看| 色狠狠一区二区| 成人免费视频一区二区| 国产在线一区观看| 免费观看30秒视频久久| 亚洲va国产va欧美va观看| 亚洲欧洲精品天堂一级 | 日本aⅴ免费视频一区二区三区| 中文字幕在线不卡国产视频| 久久久久久久久一| 欧美精品一区二区三区蜜桃视频| 欧美高清视频一二三区 | 日韩色在线观看| 欧美美女黄视频| 日本国产一区二区| jiyouzz国产精品久久| 国产精品99精品久久免费| 久久国产免费看| 蜜臀va亚洲va欧美va天堂 | 欧美电影免费观看高清完整版| 欧美日韩不卡视频| 欧美日韩精品久久久| 精品污污网站免费看| 日韩欧美你懂的| 欧美久久久一区| 欧美日韩三级在线| 欧美视频精品在线| 欧美美女黄视频| 91麻豆精品国产91| 欧美一级专区免费大片| 日韩视频永久免费| 久久影院午夜论| 国产婷婷色一区二区三区在线| 国产肉丝袜一区二区| 国产精品久久网站| 亚洲免费观看高清完整版在线| 亚洲三级在线免费| 亚洲欧美日韩国产成人精品影院| 亚洲精品国产成人久久av盗摄| 一区二区三区四区不卡在线| 亚洲午夜一二三区视频| 午夜欧美电影在线观看| 蜜臀久久99精品久久久久宅男| 美女一区二区三区在线观看| 精品一区二区三区免费视频| 国产福利一区二区三区| 99久久精品国产导航| 欧美网站大全在线观看| 日韩欧美亚洲国产精品字幕久久久| 欧美精品一区二区三区蜜臀| 欧美国产在线观看| 亚洲一区中文日韩| 精品一区二区三区在线视频| 国产成人无遮挡在线视频| 91香蕉国产在线观看软件| 欧美日韩www| 26uuu欧美| 亚洲男女一区二区三区| 日韩精彩视频在线观看| 国产成人欧美日韩在线电影| 一本大道av一区二区在线播放| 欧美日本在线播放| 久久久.com| 亚洲一区在线视频| 国产精品一区二区在线观看不卡| 色婷婷国产精品| 日韩久久久久久| 中文字幕亚洲区| 麻豆91在线播放免费| av高清不卡在线| 欧美成人三级在线| 亚洲久本草在线中文字幕| 看国产成人h片视频| 色综合激情久久| 久久这里只有精品6| 亚洲成人久久影院| 成人久久18免费网站麻豆 | 成人免费观看男女羞羞视频| 欧美日韩电影在线| ...中文天堂在线一区| 久久爱www久久做| 欧美网站大全在线观看| 国产精品拍天天在线| 男人的天堂亚洲一区| 日本乱码高清不卡字幕| www国产精品av| 日韩在线a电影| 日本高清无吗v一区| 国产色综合一区| 麻豆国产欧美日韩综合精品二区| 色综合激情五月| 国产精品网站在线观看| 久久99九九99精品| 欧美日韩一区视频| 一区二区三区在线观看欧美| 国产91丝袜在线观看| 欧美电影精品一区二区| 午夜视频久久久久久| 99re这里只有精品视频首页| 久久奇米777| 精品一区二区三区在线观看| 欧美男男青年gay1069videost| 一区二区三区免费在线观看| 99国产欧美另类久久久精品| 国产欧美日韩在线| 91蜜桃传媒精品久久久一区二区| 国产日韩亚洲欧美综合| 国产精品综合二区| 精品国产乱码久久久久久蜜臀| 日本vs亚洲vs韩国一区三区二区 | 色综合久久精品| 18成人在线视频| 99精品久久99久久久久| 国产精品美女久久久久aⅴ | 久久99精品久久久久婷婷| 欧美日韩不卡在线| 日韩精品每日更新| 日韩一级完整毛片| 日韩福利电影在线| 这里是久久伊人| 麻豆91小视频| 久久久久久久久久久久久女国产乱 | 成人爽a毛片一区二区免费| 国产日产欧产精品推荐色| 成人综合婷婷国产精品久久蜜臀| 欧美高清一级片在线观看| 成人高清视频在线| 中文字幕一区二区三区乱码在线| 91在线播放网址| 亚洲综合免费观看高清完整版 | 一区二区三区影院| 91麻豆国产福利在线观看| 亚洲男女一区二区三区| 欧美吞精做爰啪啪高潮| 全国精品久久少妇| 久久久久高清精品| 91色.com| 日韩电影一区二区三区四区| 精品国产一区a| 福利一区二区在线| 亚洲另类在线一区| 欧美福利视频导航| 韩国v欧美v日本v亚洲v| 国产精品视频一二| 欧洲亚洲精品在线| 免费欧美在线视频| 欧美韩日一区二区三区四区| 欧美中文一区二区三区| 另类成人小视频在线| 国产精品嫩草99a| 欧美日产在线观看| 国产成人超碰人人澡人人澡| 亚洲精品美国一|