(一)單鏈表
單鏈表結構:資料域_data和指標域_pnext,其基本操作如下列**所示,附有注釋說明:
//單鏈表結構
typedef int elemtype;
typedef struct node
node,*pclist;
//購買節點
node* buynode()
//釋放節點
void freenode(node* pnode)
//初始化鍊錶 購買頭結點
void init_list(pclist plist)
//單鏈表頭插
bool insert_head(pclist plist,elemtype key)
//單鏈表尾插
bool insert_tail(pclist plist,elemtype key)
//查詢某個值是否在鍊錶中 並返回其節點
node* search(pclist plist,elemtype key)
} return null;
}//查詢某個值在單鏈表中的前驅
node* search_prev(pclist plist,elemtype key)
} return null;
}//刪除某個節點
//首先查詢要刪的節點是否在鍊錶中
//如果存在則需要找到被刪節點的前驅
//被刪節點的前驅的_pnext域指向被刪節點的後繼
//最後free調要刪的節點
bool delete_node(pclist plist,elemtype key)
//統計鍊錶長度
int getlength(pclist plist)
return len ;
}//判斷鍊錶是否為空
bool isempty(pclist plist)
//銷毀鍊錶
void destroy(pclist plist)
}//列印單鏈表
void show(pclist plist)
printf("\n");
}//鍊錶逆置
void reserve(pclist plist)
}
(二)常見鏈表面試題(部分,後面繼續更新)
(1)判斷鍊錶是否有環
//判斷鍊錶是否有環
bool iscircle(pclist plist)
if(fast == low)
}return false;
}//測試用例
/*node* p = search(&head1,3);
node* q= search(&head1,10);
q->_pnext = p ;
if(iscircle(&head2))
if(fast == low)
}fast = plist;
while(fast ->_pnext && low->_pnext ) }
return null;
}//找到環的入口位址 解法二 不是最優
node* finde_circle1(pclist plist)
if(fast == low)
}node *meetnode = low;
node* p = meetnode;
int count = 1;
while( p->_pnext != meetnode)
node *pnode1 = plist;
for(int i = 0 ; i < count;i++)
node *pnode2 = plist;
while(pnode1 != pnode2)
return pnode1;
}//測試用例
/* node* pq = finde_circle(&head1);
if(pq)
else
return p0;
}//測試用例
/* int k ;
cin>>k;
node* pk = find_k_list(&head1,k);
show(&head1);
if(pk)
} return low;
}//測試用例
/* node *mid = find_middle_list(&head2);
if(mid)
while(!st.empty())
cout《等待更新。。。。。
資料結構之單鏈表操作
編寫乙個程式,實現單鏈表的各種基本運算 假設單鏈表的元素型別為char 1 初始化單鏈表h 2 採用尾插法依次插入元素a,b,c,d,e 3 輸出單鏈表h 4 輸出單鏈表h長度 5 判斷單鏈表h是否為空 6 輸出單鏈表h的第3個元素 7 輸出元素a的位置 8 在第4個元素位置上插入元素f 9 輸出單...
資料結構之單鏈表
date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...
資料結構之單鏈表
鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...