發乙個單鏈表的生成程式

2021-04-06 17:47:07 字數 1454 閱讀 9206

這個是比較完全的單鏈表生成的程式.

在vc可以編譯成功.

#include

#include

#include

#include

#define len sizeof(lnode)  //定義len為乙個節點的長度

enum bool;  //定義bool型

typedef struct node

lnode,*linklist;

void creatlist(linklist &,int);   //生成乙個單鏈表

bool listinsert(linklist &,int,char); //在單鏈表中插入乙個元素

bool listdelete(linklist &,int,char &); //在單鏈表中刪除乙個元素

bool listfind_keyword(linklist,char,int &); //按關鍵字查詢乙個元素

bool listfind_order(linklist,char &,int);  //按序號查詢乙個元素

void listprint(linklist);      //顯示單鏈表所有元素

void main()

p->next=null;

}///

/*void creatlist(linklist &v,int n)   //頭插法

//查詢第i-1個元素的位置

if(!p||j>i) return false;  //沒有找到

s=(linklist)malloc(len);     //生成乙個新結點    

s->data=e;           

s->next=p->next;        //將新結點插入到單鏈表中

p->next=s;

return true;

bool listdelete(linklist &v,int i,char &e)

if(!(p->next)||j>i) return false; //查詢失敗

q=p->next;p->next=q->next; //刪除該元素   

e=q->data;         //e取得該元素值

free(q);           //釋放該元素空間

return true;

bool listfind_keyword(linklist v,char e,int &i)

//找到或到鍊錶尾為止

if(p->data!=e)                      //該元素在鍊錶中不存在

return false;

else return true;

bool listfind_order(linklist v,char &e,int i)

if(j!=i) return false; //查詢失敗

else

printf("/n");

反轉乙個單鏈表

思路二 反轉乙個鍊錶 示例 結構體定義 先對原鍊錶做頭刪操作,再對新鍊錶做頭插定義乙個新head頭指標,標記為newhead,將它初始為null,並非指向null,最後我們選擇返回這個newhead指標作為新鍊錶的頭指標。定義乙個結點node作為 臨時中轉站 初始化與否並無大影響。進行迴圈遍歷鍊錶各...

定義乙個單鏈表

鍊錶是一種物理儲存結構上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的 鍊錶是由乙個乙個的節點相連線的,每乙個節點都是乙個物件,都有兩個屬性 data,next 根據鍊錶的結構可以分為 1.帶頭 不帶頭 2.單向 雙向 3.迴圈 非迴圈 這些組合起來就有8種結構 編寫乙...

反轉乙個單鏈表

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?解題心路 迭代好說,遞迴 第一思路將後面的全部翻轉好,再將最後乙個元素的next指向當前。返回最後乙個元素的指標,那就有 當前節點指標 head ...