頭插法
int harsh_table_insert_node(const char * skey, int nvalue)
memset(pnewnode, 0, sizeof(harshnode)); //初始化新節點
pnewnode->skey = (char *) malloc(strlen(skey) + 1); //申請一塊skey大小的記憶體
if (null == pnewnode->skey)
memset(pnewnode->skey, 0, strlen(skey) + 1);
strcpy(pnewnode->skey, skey); //將skey的內容賦給 pnewnode -> skey
pnewnode->nvalue = nvalue; //鍵值也複製過來
pnewnode->pnext = null;
if ((g_harsh_table_size >= harsh_table_max_size) || (null == skey))//分配位址
return -1;
pos = harsh_table_harsh_string(skey) % harsh_table_max_size; //用這種方法計算skey在雜湊陣列中對應的位置
pharshnodehead = harshtable[pos]; //得到對應位置陣列頭節點
if (null == pharshnodehead)
else
g_harsh_table_size ++;
return 0;
}
尾插法稍微有一點複雜
int harsh_table_insert_node(const char * skey, int nvalue)
memset(pnewnode, 0, sizeof(harshnode));
pnewnode->skey = (char *) malloc(strlen(skey) + 1); //申請一塊skey大小的記憶體
if (null == pnewnode->skey)
memset(pnewnode->skey, 0, strlen(skey) + 1);
strcpy(pnewnode->skey, skey); //將skey的內容賦給 pnewnode -> skey
pnewnode->nvalue = nvalue; //鍵值也複製過來
pnewnode->pnext = null;
if ((g_harsh_table_size >= harsh_table_max_size) || (null == skey))//分配位址
return -1;
pos = harsh_table_harsh_string(skey) % harsh_table_max_size; //用這種方法計算skey在雜湊陣列中對應的位置
pharshnodehead = harshtable[pos];
if (null == pharshnodehead)
else
node = pharshnodehead; //儲存這個不是null的節點位址,最後連線用
pharshnodehead = pharshnodehead->pnext; //向後移動,肯定會有null的時候
}//這時,已經到了最後乙個位址為null的節點
pharshnodehead = (harshnode *) malloc(sizeof(harshnode)); //分配空間
pharshnodehead = pnewnode; //賦值
node->pnext = pharshnodehead; //這一步很重要,將新節點與原鍊錶連線
}g_harsh_table_size ++;
return 0;
}
單鏈表頭插法尾插法
標頭檔案如下 ifndef linklist h define linklist h define success 10000 define failure 10001 define size 10 typedef int element struct node typedef struct nod...
C C 鏈 表 頭插法 尾插法
include stdafx.h include iostream using namespace std struct node node phead null 一開始沒有節點 先設定乙個空節點作為頭節點 此頭節點 資料data null,next null void addhead int d ...
建立單鏈表 頭插法 和 尾插法
因為markdown編譯能力有限 暫時上吧,我覺得也挺方便的 又在為自己菜找藉口了 我看著自己畫的圖就把 敲出來了,不算難。注意 實現了鏈棧的入棧之後,我發現這張圖畫的不是特別準確,表頭是不動的,一直是在表頭與第乙個節點之間插入新的節點!上 include includeusing namespac...