1樓:匿名使用者
listinsert()函式修改如下:
linklist *listinsert(linklist *l,int i,int e)
int j=0;
linklist *p=l,*q,*s;
while(jnext;
if(p==null)
s=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->next=p;
q->態坦差next=s;
elses=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->信卜next=p->帆皮next;
p->next=s;
return l;
2樓:
/只看了你認為有問題的函式,if(p!=null) /虛扒拆/汗乙個此埋,你的意思,如果有符合條件的插入點,就返回,如果差棗沒有就插入。不要再說了吧 !累了,就不改了。
return 0; else
s=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->next=p->next;
p->next=s;
return l;
3樓:網友
if(p!=null)
return 0; else
s=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->next=p->next;
p->next=s;
return l;
if語句有森罩問題哈,當p==null執行s=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->next=p->next;
p->next=s;
return l;其中,s->next=p->next;因為p==null,p->next怎麼會有值呢?所以不能把p->next賦給s->next,應該這樣改:
s=(linklist *)malloc(sizeof(linklist));
s->data=e;
s->next=p;
p=s;return l;
我只發現此謹鬧了這個問題,你自己試試看,看還有沒有其他問題晌啟!
c語言程式設計問題 連結串列
4樓:鮮辭支念柏
連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標鏈結次序實現的。
連結串列由一系列結點(連結串列中每乙個元素稱為結點)組成,結點可以在執行時動態生成。
每個結點包括兩個部分:
1、儲存資料元素的資料域;
在c語言中,連結串列的構建是通過結構體實現的,乙個結構體變數,形成乙個連結串列的節點。
在結構體內,需要由至少乙個型別為結構體本身型別的指標的元素,作為指標域存在,用來指向下乙個或者上乙個(僅用於雙向連結串列)元素節點。
誰懂c++中連結串列的使用
5樓:邰懌何瑩然
連結串列和陣列一樣是一種資料結構,如何使用完全基於你的應用需求。
連結串列和c++語言本身沒有任何聯絡。很多語言都可以實現連結串列資料結構。
我講一下資料和連結串列的區別有可能幫助你對連結串列的使用有個感覺。
陣列是將元素在記憶體中連續存放,由於每個元素佔用記憶體相同,所以你可以通過下標迅速訪問陣列中任何元素。但是如果你要在陣列中增加乙個元素,你需要移動大量元素,在記憶體中空出乙個元素的空間,然後將要增加的元素放在其中。同樣的道理,如果你想刪除乙個元素,你同樣需要移動大量元素去填掉被移動的元素。
連結串列恰好相反,連結串列中的元素在記憶體中不是順序儲存的,而是通過存在元素中的指標聯絡到一起。比如:上乙個元素有個指標指到下乙個元素,以此類推,直到最後乙個元素。
如果你要訪問連結串列中乙個元素,你需要從第乙個元素開始,一直找到你需要的元素位置。但是增加和刪除乙個元素對於連結串列資料結構就非常簡單了,只要修改元素中的指標就可以了。
從上面的比較你可以看出,如果你的應用需要快速訪問資料,很少或不插入和刪除元素,你就應該用陣列;相反,如果你的應用需要經常插入和刪除元素你就需要用連結串列資料結構了。然後你自己可以想一想什麼樣的應用用連結串列合適。
另外,建議你找一本好一點的關於資料結構的書,裡面應該關於連結串列和其上演算法的詳細介紹。連結串列本身是乙個複雜的資料結構,而且包括很多種類,比如單向連結串列,雙向連結串列,樹,圖等,不是一篇文章可以介紹得清楚的。
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...
c語言,連結串列,結構體問題高分真心求高手修改程式!分是次要的
朋友,你這樣寫不好,你首先把東西都寫在了一個函式裡,又想加新功能,這樣層次不夠明顯,你想過沒有,可以有create,delete,edit,exit這幾個獨立的功能函式,然後再在main函式裡利用對使用者命令字串的解釋,進行處理,這樣不是想加什麼功能,只要在main函式裡新增適當的字串處理,並且實現...
c語言問題求高手解答,C語言問題求高手解答
幫你寫好了,這裡幫你編譯執行了,沒任何問題,不放心的話你自己試試struct staff int main void if head null puts 沒有任何資料,抱歉!else current head while current null current head while current...