Posted by : Unknown 29 March 2014

Đề bài: Dùng danh sách liên kết làm những việc sau:
- Quản lý danh sách sinh viên. Nhập họ, tên, địa chỉ, tuổi và in ra màn hình.
- Chèn thêm một sinh viên vào vị trí thứ 2.

Bài làm:

#include<iostream>
using namespace std;
struct dssv
{
    string ho,ten,diachi;
    int tuoi;
    dssv *next;
};
struct list
{
    dssv *phead;
    dssv *ptail;
};
void init(list &l)
{
    l.phead=NULL;
}
dssv *get_node()
{
    dssv *p;
    p=new dssv;
    if(p==NULL)
    {
        cout <<"Loi !";
    }
    else
    {
        cout <<"Nhap ho: "; cin.ignore(1); getline(cin,p->ho);
        cout <<"Nhap ten: "; getline(cin,p->ten);
        cout <<"Nhap dia chi: "; getline(cin,p->diachi);
        cout <<"Nhap tuoi : "; cin >> p->tuoi;
        p->next=NULL;
    }
    return p;
}
void chendau (list &l,dssv *p)
{
    if (l.phead==NULL)
    {
        l.phead=p;
        l.ptail=p;
    }
    else
    {
    p->next=l.phead;
    l.phead =p;
    }
}

void nhap_sv(list &l)
{
    int n;
    dssv *p;
    cout <<"Nhap so sinh vien: ";
    cin >> n;
    for (int i=0;i<n;i++)
    {
        cout <<"Nhap sinh vien thu "<<i+1 <<": "<<endl;
        p=get_node();
        chendau(l,p);
    }
}
void inra(list &l)
{
    dssv *p;
    p=l.phead;
    while (p!=NULL)
    {
        cout <<p->ho<<"  " <<p->ten <<"  "<<p->diachi <<"  "<<p->tuoi <<endl;
        p=p->next;
    }
}
void chensau(list &l,dssv *q,int n)
{
     dssv *p;
     p=get_node();
     //if(p=NULL)exit(1);
     if(q!=NULL)
     {
         p->next=q->next;
         q->next=p;
         if(q==l.ptail) l.ptail=p;
     }else chendau(l,p);

}
void themmotso(list &l)
{
    dssv *p;
    int n;
    int i=0;
    p=l.phead;
    while (i!=0)
    {
        i++;
        p=p->next;
    }
    chensau(l,p,n);
}


int main()
{
 list l;
 init (l);
 nhap_sv(l);
 cout <<"Danh sach sinh vien la: "<<endl;
 inra(l);
 cout<<"Chen 1 sinh vien vao vi tri thu 2: "<<endl;
 themmotso(l);
 inra (l);
}

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Kiến thức tổng quan - Vòng Đá 5A - Powered by Blogger - Designed by SnowBlack -