1樓:
//解決這種問題很簡單,如果連結串列帶頭結點的話,那麼判空就是 p=head->next; p == null
如果不帶頭結點的話 那麼就是 head == null按照你題目的要求那麼就是帶有頭結點。
下面我給你寫個建立連結串列和列印連結串列的程式。
#include
#include
#include
typedef struct m_cargomcargo;
typedef struct m_node*mlist;
void createlink(mlist l)}void printlink(mlist l)printf("\n");
}void main()
2樓:克拉默與矩陣
// 帶頭結點單連結串列
typedef struct lnodelnode,*linklist;
bool isempty(linklist l)還需要什麼儘管提,我極力幫忙
3樓:
可以單獨定義一個表示連結串列資訊的連結串列描述符
typedef m_listdesc
這樣在所有對連結串列的操作函式中都應該加上對此操作符的修改和訪問等內容
4樓:匿名使用者
其實指標,比如這裡的struct m_node *next; 就是一個標識記憶體地址的數字。
如果你初始化的時候不給它設一個值,比如最常用的是0,也就是null(0就是null),用途就是標明這個指標還沒有分配記憶體空間。
一般連結串列由一個head或tail指標標識。
同樣,在沒有分配地址的時候,必須把這個指標設為0,否則就無法知道到底有沒有東西。
總結:每次新開一個指標的時候如果不是一宣告就分配地址,就一定要記得設成null,舉手之勞。
5樓:
p=head->next; p == null
6樓:匿名使用者
二樓沒仔細看,但演算法靠譜!
p=head->next; p == null
7樓:風若遠去何人留
連結串列區分帶頭節點和不帶頭結點兩種。假定連結串列節點指向下一節點的指標變數名為next。那麼區分情況,判斷空連結串列的方法為:
1 帶頭節點。
對於帶頭節點的連結串列,存在有不變的頭結點head,這個節點並不儲存任何資料,僅提供連結串列起始的一個標識。對於此類連結串列,判斷為空的條件為head->next==null。當head的next值為null,這時連結串列為空。
2 不帶頭結點。
不帶頭結點的情況,連結串列的起始節點是可能變化的,但無論如何變化,必須有一個節點指標型別的變數儲存實際上的第一個節點first。
當first為空時,連結串列即為空。這時判斷為空的條件為first==null。
c語言連結串列 連結串列裡p next是怎麼指向下結點?它是
希伯來爵 struct node n1,n2 定義兩個節點n1.next n2 n1和n2連線起來n2.next null n2的下個節點為空struct node n3 增加一個節點n2.next n3 n2和n3連線起來n3.next null n3的下個節點為空這樣你明白了嗎 p next其實...
c語言怎麼把檔案的內容讀到連結串列裡面
寫入檔案當然要用專門的 檔案操作函式 fprintf fscanf fread fwrite fputs fgets 既然你有很多的節點,當然是用迴圈 讓指標挨個遍歷個個節點,每到一個,把結構體的個個變數依次寫入 至於是存二進位制的還是文字形式的。就看你自己的了。 首先設計檔案格式 節點數 節點1內...
C語言連結串列的問題,高手來看看我怎麼就錯了
見下面 中的註釋 include include struct node int s 0 void main struct node creat struct node head printf 請再輸入一個數 p struct node malloc sizeof struct node scanf...