C語言實現單鏈表

2021-07-28 13:53:02 字數 1522 閱讀 8729

dev c++編譯執行通過,實現了單鏈表的構建,清空,插入,刪除和查詢。

#include#include#include#include#include#define ok 1

#define error 0

typedef int elemtype;

typedef struct node

node;

typedef struct node *linklist;

typedef int status;

status getelem(linklist l,int i,elemtype *e)

if(!p||j>i)

return error;

*e=p->data;

//printf("%d\n",p->data);

return ok;

}status listinsert(linklist *l,int i,elemtype e)

if(!p||j>i)

return error;

s=(linklist)malloc(sizeof(node));

s->data=e;

s->next=p->next;

p->next=s;

return ok;

}status listdelete(linklist *l,int i,elemtype *e)

if(!(p->next)||j>i)

return error;

q=p->next;

p->next=q->next;

*e=q->data;

free(q);

return ok;

}void createlisttail(linklist *l,int n)

r->next=null;

}status clearlist(linklist *l)

(*l)->next=null;

return ok;

}int main()

getelem(ll,aa,&bb);

printf("獲取的元素是%d\n",bb);

int cc=99;

listinsert(&ll,aa,cc);

getelem(ll,aa,&bb);

printf("插入的元素是%d\n",bb);

listdelete(&ll,aa,&bb);

printf("刪除的元素是%d\n",bb);

clearlist(&ll);

return 0;

}

在最初執行時遇到乙個小問題,就是

列印顯示出來的煉表裡的資料都是一樣的,而且獲取除了第乙個元素外,獲取其他的元素都不對。開始先排除實現的那些函式都沒問題,然後再排除初始化產生隨機數的時候能正確產生不同的數字,那麼就是在主函式裡有問題。最後終於發現是主函式裡for迴圈有問題,竟然把乙個變數的初始化放入到迴圈裡,這不意味著每次迴圈變數都被賦予初始值,那在迴圈裡還改變個什麼勁啊!!!感覺自己蠢蠢噠。。。

c語言實現單鏈表

一 使用簡介 使用c語言實現了單鏈表的基本操作,共有四個檔案,兩個標頭檔案是常用的,後兩個分別是主函式,和對鍊錶的基本操作函式,倒入時候,須將四個檔案放在同乙個目錄下。二 心得 在書寫過程中,主要錯誤集中在指標的使用上,通過此次程式設計,對於指標的認識更加深刻,頭結點的存在,更大意義上是為了簡化指標...

C語言實現單鏈表

單鏈表可以說是基礎,有利於對指標的使用 結點 typedef int datatype typedef struct slistnode slistnode 實現的函式的宣告如下 slistnode buynode datatype x void printslist slistnode phead...

單鏈表C語言實現

單鏈表相比於順序表來說,優點在於頭部,中間插入比較高效,但操作較為複雜,空間利用率低,並且cpu順序錶比鍊錶快取效率高。下面來看 實現 include include includetypedef int datatype typedef struct node pnode,node 初始化單鏈表 ...