Các pác xem giúp em chương trình sai chỗ nào mà dẫn đến hiện kết quả ko chính xác nhé. Em đang giải bài này:
"Vận dụng các phép toán trên danh sách đặc để viết chương trình nhập vào một danh sách các số
nguyên và hiển thị danh sách vừa nhập ra màn hình. Thêm 1 phần tử có nội dung x vào danh sách tại
vị trí p (trong đó x và p được nhập từ bàn phím). Xóa phần tử đầu tiên có nội dung x (nhập từ bàn
phím) ra khỏi danh sách."
Mã nguồn PHP:
#include<iostream>
#define maxlength 20
using namespace std;
typedef int position;
typedef int elementtype;
typedef struct list
{
elementtype elements[20];
position last;
};
elementtype RETRIEVE(position P,list L)
{
return L.elements[P-1];
}
void MAKENULL_LIST(list &L)
{
L.last=0;
}
int ENDLIST(list L)
{
return L.last+1;
}
int FIRST(list L)
{
return 1;
}
void INSERT_LIST(elementtype X, position P, list &L)
{
position i;
if(P>ENDLIST(L) || P<FIRST(L)) cout<<"Vi tri khong hop le!";
else if(L.last==maxlength) cout<<"Danh sach day!";
else
{
for(i=L.last;i>=P+1;i--)
L.elements[i]=L.elements[i-1];
L.elements[P]=X;
L.last++;
}
}
void READ_LIST(list &L)
{
position p=1;
elementtype q;
cout<<"Nhap phan tu (ket thuc bang -1):
";
do
{
cout<<"X"<<p<<"= ";cin>>q;
INSERT_LIST(q,p,L);
p++;
}
while(q!=-1);
}
position LOCATE(elementtype X, list L)
{
for (position i=FIRST(L);i<L.last;i++)
if(RETRIEVE(i,L)==X) return i;
}
void DELETE_LIST(position P, list &L)
{
position q;
for(q=P+1;q<=L.last;q++)
L.elements[q-2]=L.elements[q-1];
L.last--;
}
void PRINT_LIST(list L)
{
position q;
for(q=FIRST(L);q<=L.last;q++)
cout<<RETRIEVE(q,L)<<" ";
cout<<"
";
}
int main()
{
list L;
position P;
elementtype X;
MAKENULL_LIST(L);
READ_LIST(L);
cout<<"Danh sach vua nhap:
";
PRINT_LIST(L);
cout<<"
Nhap phan tu va vi tri can them: ";
cin>>X>>P;
INSERT_LIST(X,P,L);
cout<<"Danh sach sau khi them:
";
PRINT_LIST(L);
cout<<"
Nhap phan tu muon xoa: ";
cin>>X;
DELETE_LIST(LOCATE(X,L),L);
cout<<"Danh sach sau khi xoa "<<X<<" :
";
PRINT_LIST(L);
return 0;
}
View more random threads:
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...