/**功能模組:資料鏈表
*實現功能:1、單向資料鏈表,遍歷,查詢等都只是支援 從前往後 /
/*節點結構體:value是節點值,占用4個位元組,用處:
*1、當節點只需要存放乙個32位以下資料的時候,就可以使用value,data就可以不需要重新申請記憶體了
*2、記憶體分配的最小單元是16個位元組,用來佔位到16個位元組,這樣就不會出現記憶體浪費,反正已經申請出來了
*/typedef struct _node
node;
typedef node pnode;
typedef struct _mylist
list;
typedef list* plist;
#include 「mylist.h」
#include 「malloc.h」
/**建立乙個鍊錶,並且初始化
*建立失敗返回null
/plist createlist(void)
else return null; }/
*建立乙個節點,並且初始化
*建立失敗返回null
/pnode createnode(void)
return node;}/
*鍊錶的頭指標尾指標均置null
/void initlist(plist list)
/*刪除乙個鍊錶,遍歷鍊錶所有節點,依次釋放記憶體
*刪除鍊錶本身並且釋放記憶體
/ plist deletelist(plist list)
next=node->next;
myfree(node);//釋放節點
node=next;
}list->head=null;
list->end=null;
myfree(list);
return null;}/
*清空乙個鍊錶,遍歷鍊錶所有節點,依次釋放記憶體
/ void clearlist(plist list)
next=node->next;
myfree(node);//釋放節點
node=next;
}list->head=null;
list->end=null;}/
*在指定的位置後面插入乙個節點,失敗返回0,成功返回1
/ uint8_t insertionnodeatlocation(plist list,pnode node,uint32_t loc)
else
else if(loc>=(getlistcount(list)))
else
count++;
inode=inode->next;
}return 0;}}
}/*直接在末尾插入乙個節點,失敗返回0,成功返回1
/ uint8_t insertionnodeatend(plist list,pnode node)
else}/
*移除指定鍊錶,指定位置的節點,節點位置由傳入的節點指標決定,失敗返回0,成功返回1
/ uint8_t removenodebypointer(plist list,pnode node)
else return 0;//找不到}/
*移除指定鍊錶,指定位置的節點,節點位置由loc決定,失敗返回0,成功返回1
/ uint8_t removenodebylocation(plist list,uint32_t loc)
loc-=1;//-1之後,我們應該刪除loc的下乙個節點
uint32_t count=0;
while(node!=null)
count++;
node=node->next;
}return 0;}/
*判斷乙個鍊錶是不是空鍊錶,空的返回1,不為空的返回0,鍊錶本身為空的時候也返回1
/ uint8_t listisempty(const plist list)
/*遍歷指定鍊錶的節點個數
/ uint32_t getlistcount(const plist list)
return count;}/
*輸入乙個節點位置,在指定鍊錶中找到該位置,並且返回該位置的節點指標
*查詢不到返回null,查詢到了返回節點指標
/ pnode getnode(const plist list,uint32_t loc)
return node;}/
*輸入乙個節點指標,在指定的鍊錶中查詢該節點位置
*查詢不到返回-1,查詢到了返回節點位置
*/ int getnodelocation(const plist list,const pnode node)
listnode=listnode->next;
count++;
}return loc;
}
乙個簡單的 單向鍊錶
unitunit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls type tform1 class tform button1 tbutton but...
乙個簡單的單向鍊錶 C
singlylinkedlist.h include include class node 構造方法,方便快速建立結點 node int data,node next class list 返回鍊錶長度 list 建構函式 list const list temp 拷貝建構函式 list 析構函式 ...
鍊錶(一) 建立乙個最基本的單向鍊錶
1.結點 鍊錶中用來儲存乙個資料的儲存單元。乙個鍊錶至少需要由兩部分組成,就是資料域和指標域,一般形式的結點定義為 struct node typedef struct node elemsn 以上兩步等價於 typedef struct node elemsn 2.使用指標變數p表示結點的成員 p...