30/09/2018, 17:56

liên kết đơn trong C++

mn cho minh hỏi tý à
trong liên kết đơn lỗi dướinày do đâu thế

Lỗi 2 lỗi C2039 : ’ infor ’ : không phải là một thành viên của ’ nút ’ e :

Minh Hoàng viết 20:12 ngày 30/09/2018

Bạn mang code lên đây cho dễ sửa.
Lỗi này thì có vẻ như infor không thuộc kiểu dữ liệu e.

Nhuyngo Nhuyngo95 viết 19:57 ngày 30/09/2018

xl đây ak @Rok_Hoang

#include<stdlib.h>

#include<iostream>
#include<string.h>
#include<iomanip>
#include<string.h>
#include<malloc.h>// khai báo việc cấp phát bộ nhớ cho hàm 
#define TRUE 1
#define FOUR 0
typedef struct sinhvien
{
	int mssv;
	char hoten[12];
	float dtb;
	struct sinhvien*next;
};
typedef struct node
{
  sinhvien info;
  struct node*next;
}*NODEPTR;
void initialize(NODEPTR*plist)//khởi tạo danh sách

{
	*plist=NULL;
}
NODEPTR Getnode(void)//cấp phát bộ nhớ cho 1node
{

	NODEPTR P;
	P=(NODEPTR) malloc(sizeof(struct node));
	return(P);

}
void Freenode(NODEPTR P)//xóa 1 nút
{
free(P);

}
int Emptynode (NODEPTR*plist)//	kiểm tra ds có rỗng ko
{
	return(*plist==NULL?TRUE:FOUR);

}

NODEPTR Inserttop(NODEPTR *plist, sinhvien x){
    NODEPTR p;
    p=Getnode();
    p->infor=x;
    if(Emptynode(plist)){
        p->next=NULL;
        *plist=p;
        return(p);
    }
    p->next=*plist;

    *plist=p;
    return(p);
}
 int main()
{
    NODEPTR plist;
	sinhvien x,y;
	int vitri; 
	char c;
    initialize(&plist);
    int chon=1;
     while(chon==1)
	{
        cout<<"\n  thu muc chinh   "<<endl;
        cout<<"\n 1- xem danh sinh vien"<<endl;
        cout<<"\n 2- Them sinh vien vào danh sách"<<endl;
        cout<<"\n 3- xoa sinh vien "<<endl;
        cout<<"\n 4- hieu chinh sinh vien "<<endl;
        cout<<"\n 5- sp xep sinh vien theo MSSV"<<endl;
        cout<<"\n 6- tim kiem sinh vien theo MSSV"<<endl;
        cout<<"\n 7- them sinh vien vao danh sách theo ma so sinh vien"<<endl;
        cout<<"0. thoat"<<endl;
         cout<<"bam chon";
		 cin>>chon;
		   if (chon==1)
		   {  
			   cout<<"  st   ten   dtb";
			   cout<<"nhap mssv";
			   cin>>mssv;
			   cout<<"nhap ho ten";
			   cin.getline(x.hoten,12);
			   cout<<"nhap diem so";
			   cin>>dtb;
		 initialize(&plist);
		   }
			   
           if(chon==2)
		   if(chon==3)
		   if(chon==4)
	       if(chon==6)
		   if(chon==8)
		return 0;
		   }
Minh Hoàng viết 20:09 ngày 30/09/2018
typedef struct node
{
  sinhvien info;
  struct node*next;
}*NODEPTR;

info chứ không phải infor bạn ơi

p->infor=x;
Nhuyngo Nhuyngo95 viết 20:10 ngày 30/09/2018

b có thể giải thích cái này hộ với
NODEPTR Inserttop(NODEPTR *plist, sinhvien x){
NODEPTR p;
p=Getnode();
p->infor=x;
if(Emptynode(plist)){
p->next=NULL;
*plist=p;
return§;
}
p->next=*plist;

*plist=p;
return(p);
Minh Hoàng viết 20:02 ngày 30/09/2018

Ham đó để thêm một node để vào đầu dành sách.

Nhuyngo Nhuyngo95 viết 20:01 ngày 30/09/2018

@ltd
coi hộ cái này nó bị sai chỗ náo vậy a

include
include
include
include
include
include// khai báo việc cấp phát bộ nhớ cho hàm
define TRUE 1
define FOUR 0
typedef struct sinhvien
{
int mssv;
char hoten[12];
float dtb;
struct sinhvien*next;
};
typedef struct node
{
sinhvien info;
struct node*next;
}*NODEPTR;
void initialize(NODEPTR*plist)//khởi tạo danh sách

{
*plist=NULL;
}
NODEPTR Getnode(void)//cấp phát bộ nhớ cho 1node
{

NODEPTR P;
P=(NODEPTR) malloc(sizeof(struct node));
return(P);
}
void Freenode(NODEPTR P)//xóa 1 nút
{
free(P);

}
int Emptynode (NODEPTR*plist)//	kiểm tra ds có rỗng ko
{
return(*plist==NULL?TRUE:FOUR);

}

NODEPTR Inserttop(NODEPTR *plist, sinhvien x){
NODEPTR p;
p=Getnode();
p->infor=x;
if(Emptynode(plist)){
p->next=NULL;
*plist=p;
return(p);
}
p->next=*plist;

*plist=p;
return(p);
}
int main()
{
NODEPTR plist;
sinhvien x,y;
int vitri; 
char c;
initialize(&plist);
int chon=1;
while(chon==1)
{
cout<<"\n thu muc chinh "< cout<<"\n 1- xem danh sinh vien"< cout<<"\n 2- Them sinh vien vào danh sách"< cout<<"\n 3- xoa sinh vien "< cout<<"\n 4- hieu chinh sinh vien "< cout<<"\n 5- sp xep sinh vien theo MSSV"< cout<<"\n 6- tim kiem sinh vien theo MSSV"< cout<<"\n 7- them sinh vien vao danh sách theo ma so sinh vien"< cout<<"0. thoat"< cout<<"bam chon";
cin>>chon;
if (chon==1)
{
cout<<" st ten dtb";
cout<<"nhap mssv";
cin>>mssv;
cout<<"nhap ho ten";
cin.getline(x.hoten,12);
cout<<"nhap diem so";
cin>>dtb;
initialize(&plist);
}

       if(chon==2)
	   if(chon==3)
	   if(chon==4)
       if(chon==6)
	   if(chon==8)
	return 0;
	   }
Bài liên quan
0