最近複習資料結構的時候,複習到了鍊錶,把王道上的關於鍊錶的基本操作敲了一遍,當是複習鞏固,記錄在此,沒準以後能用得到。
//結點型別
typedef
struct lnode
lnode,*linklist;
//前插法建立單鏈表
linklist createlist1(linklist &l)
while(val !=
9999); //當輸入的元素9999 時,表示輸入結束
l = head;
return l;
}
//尾插法建立單鏈表
linklist createlist2(linklist &l)
return l;
}
//獲得指定位置的結點
lnode* getelem(linklist l,int
pos)
else
break;
}//cout<<"p:"
if(i != pos || p == null)
return p;
}
//在給定的單鏈表中查詢指定元素,返回結點
lnode* locateelem(linklist l,int x)
cout<<
"can find the x and return null"
null;
}
//在指定位置插入指定元素
void insertelem(linklist &l,int x,int pos)
}
//刪除指定位置的元素
void deleelem(linklist &l,int pos,int &e)
else
e = p->
data; //將刪除元素返回,
pre->next = p->next;
delete p;
}
//返回表的長度,
int getlength(linklist &l)
return
length;
}
單鏈表的相關操作
1.單鏈表的反轉 在這裡實現一種最簡單的鍊錶反轉的方法,遞迴反轉,在反轉當前借點之前先反轉後續的節點,這樣層層深入直到最後乙個子節點。package com.weibo.linkedlist public class reversenode public listnodes reverse list...
單鏈表相關操作
這是自己寫的最長的一次 了 在機房敲了一天。以前一直用list來水鍊錶的題 這次終於體會到痛苦了 include include include include include include using namespace std typedef struct node 單鏈表 s,list vo...
單鏈表相關操作
typedef int sltdatatype typedef struct slistnode slistnode typedef struct slist slist 通過畫圖來理解無頭單向非迴圈鍊錶的相關操作 其中操作在圖中用簡易偽 描述 先將要插入的結點指向第乙個結點,然後頭指標指向插入的結...