資源簡介
用帶表頭的鏈表存放輸入的數據,每讀入一個數,按升序順序插入到鏈表中,鏈表中允許兩個結點有相同值。鏈表的頭結點存放鏈表后面的結點個數,初始化時就生成頭結點(初值為0)。鏈表翻轉是把數據逆序(變成降序),注意,頭結點不動。翻轉后要再翻轉一次,恢復升序后才能插入新元素,否則會出錯。

代碼片段和文件信息
#include?
#include?
#include?“LinList2.h“
#include?
LinList?myList;
int?intemp;
char?a;
void?myListCout()//輸出
{
for(i?=?0;?i? {???
temp?=?myList.GetData(i);
cout?< }
cout< }
void?myListInsert()//升序插入新數
{
while(1)
{
cout<<“是否還需要輸入新的數Y代表是,N代表否“< cin>>a;
if(a==‘N‘||a==‘n‘)?break;
cout<<“請輸入新數“< cin>>n;
myList.OrderInsert(n);
cout<<“下面升序輸出數組“< myListCout();
}
}
void?myListInsert2()//逆序插入新數
{
while(1)
{
char?b;
cout<<“是否還需要輸入新的數Y代表是,N代表否“< cin>>a;
if(a==‘N‘||a==‘n‘)?break;
for(i=0;a!=‘N‘&&a!=‘n‘;i++)
{
if(i?%?2?==?0)
{
cout<<“因為當前數組為逆序,必須轉化為升序才可以插入,是否要轉換成升序,Y代表是,N代表否“;
cin>>b;
if(b==‘N‘||b==‘n‘)?break;
myList.Converse();
cout<<“請輸入新數“< cin>>n;
myList.OrderInsert(n);
cout<<“下面升序輸出數組“< myListCout();
}
myListInsert(); //逆序之后為升序插入
}
}
}
void?main(void)
{
cout<<“請輸入數組以-1結束輸入“< for(i=0;n!=?-1;i++)
{
cin>>n;
if(n==-1)?break;
myList.OrderInsert(n);
}
cout<<“下面升序輸出數組“< myListCout();
myListInsert();
cout<<“下面逆序輸出數組“< myList.Converse();?
myListCout();
myListInsert2();
system?(“pause“);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1485??2010-05-15?16:13??1\1.cpp
?????文件?????229456??2010-05-15?16:06??1\1.exe
?????文件???????4240??2003-09-11?21:21??1\LinList2.h
?????目錄??????????0??2010-05-23?16:22??1
-----------?---------??----------?-----??----
???????????????235181????????????????????4
評論
共有 條評論