我在通過鏈接列表進行搜索時遇到問題。我正在編寫一個成績簿程序,並且正在進行輸入錯誤檢查,以查看用戶是否進入了現有課程,以便讓學生參加該課程。需要幫助檢查C中的鏈接列表
所以這是一個雙向鏈表的課程信息的結構。
typedef struct Course_Info // Course information
{
int Course_ID;
char Course_Name[15];
struct Course_Info *next;
} Course;
typedef struct // Linked list for Course
{
int Ctracker; // Keeps track of courses
Course *Course_Head;
Course *Course_Tail;
} List_Course;
和它們相應的變量以及初始化。
List_Student Students;
List_Course Courses;
Grade_List Grades;
Students.Stracker = 0;
Students.Student_Head = Students.Student_Tail = NULL;
Courses.Ctracker = 0;
Courses.Course_Head = Courses.Course_Tail = NULL;
Grades.Grade_cnt = 0;
Grades.Grade_Head = Grades.Grade_Tail = NULL;
在這個函數中,我將招收一個學生到一門課程,但首先我要做一些輸入檢查,以確保課程存在。
void EnrollStudent(List_Course *Courses, List_Student *Students)
{
int CID; int SID;
printf("Enter course ID: ");
scanf("%d%*c", &CID);
if(CID != Courses -> Course_Head -> Course_ID)
{
printf("Course does not exist!\n");
return;
}
else
{
printf("Found class!\n");
}
}
我現在的問題是它只搜索鏈表的第一個元素。我該如何做一個檢查整個鏈表的循環?
對不起!所以如果我正確地理解它,一個雙鏈表就是這樣的。 struct Course_Info ** next? – Cheezdue
是或簡單地Course_Info * next,* prev; – Jack