Theo ý e hiểu đó là mỗi phần tử mảng mình sẽ có 1 con trỏ phead trỏ vào đầu mảng và một con trỏ pNext như bình thường đúng không ah. Khi truy cập vào phần tử nào thì con trỏ phead sẽ trỏ vào phần tử đó và thực hiện các thao tác trên danh sách liên kết như bình thường.
Em thưa thầy! Thầy có thể cho e xin tài liệu tham khảo về những dạng cấu trúc đặc biệt như mảng của danh sách liên kết,… không ah
Mảng của danh sách liên kết thì có gì mà đặc biệt hả e? Em vãn xử lý thêm xoá danh sách như bình thường thôi mà.
Theo ý e hiểu đó là mỗi phần tử mảng mình sẽ có 1 con trỏ phead trỏ vào đầu mảng và một con trỏ pNext như bình thường đúng không ah. Khi truy cập vào phần tử nào thì con trỏ phead sẽ trỏ vào phần tử đó và thực hiện các thao tác trên danh sách liên kết như bình thường.
Em thưa thầy trong đoạn code này thì biến found dùng để gán nhán nhưng là để gán nhãn cho việc gì ah!
int DFS_detectCircle(int s)
{
int i,u;
int found;
int isCircle; //kiem tra xem co chu trinh khong
init(); //khoi tao mau cac dinh
//khoi tao Stack
STop=0;
Stack[STop]=s;
Color[s]=0;
isCircle=0;
while(STop>=0 && isCircle != 1)
{
u=Stack[STop];
for(i=0;i<MAX && !isCircle;i++)
{
if(i!=u && Graph[u][i]==1 && Color[i]==0 )
{
isCircle=1; //neu co chu trinh thi se dung ngay
}
}
i=0;
found=0;
while(!isCircle && i<MAX && !found)
{
if(Graph[u][i]==1 && Color[i]==-1)
{
STop++;
Stack[STop]=i;
Color[i]=0;
found=1;
}
else
i++;
}
if(!isCircle && !found)
{
Color[u]=1;
STop–;
}
}
if(isCircle) return 1;
else return 0;
}
Nhãn cho việc còn có đỉnh nào kề mà chưa được thăm hay không
Em thưa thầy, thầy có thể nó lại bài ý tưởng để thực hiện dfs sao cho cây khung hu được có chều sâu lớn nhất có thể không ạ.
bắt đầu từ đỉnh có bậc nhỏ nhất thì khả năng thu được cây khung DFS có chiều sâu lớn nhất sẽ cao