單項鍊表的一些基礎使用方法包括:
創造單鏈表,其中含有兩種創造方法:頭插法和尾插法
輸出單鏈表
在單鏈表中查詢某個節點
在單鏈表中插入新的節點
在鍊錶中刪除乙個節點或者多個某個內容相同的節點
對單鏈表進行排序
創造乙個有序的單鏈表
主函式中的引用
typedef struct node
lnode,*linked;
1.創造單鏈表的兩種方法:頭插法的尾插法。
頭插法:顧名思義就是將從第二個節點開始的到最後的節點依次插入到第乙個節點的前方,頭插頭插當然要查到前面去,那麼順序輸入則倒序輸出。
linked get_linkedlist(int n)
return h;
}
尾插法:顧名思義就是從第二個節點開始到最後的節點依次插入到第乙個節點後方,尾插尾插當然要從插到尾部去,那麼順序輸入則順序輸出。
linked get_linkedlist(int n)
r->next=null;
return h
}
2 .鍊錶的輸出:
void out(linked h)
}
3.在鍊錶中查詢乙個節點:遍歷整個鍊錶,找到就標記並退出
int find(linked h,int goal)
k++;
p=p->next;
} if(
!flag)return 0;
else
return k;
//這裡的goal可以不是int型的,可以是乙個鍊錶的節點
}
4.鍊錶的插入:插入的時候需要找到介於這個值得前和後,即前驅和後驅
linked insert(linked h,int goal)
tmp=
(lnode*)malloc(sizeof(lnode))
; tmp->date=goal;
pre->next=tmp;
tmp->next=p;
return h;
}
5.在鍊錶中刪除乙個節點或者多個某個內容相同的節點:首先找到與要求相同的節點,再移動指標即可,相同的要刪除乙個節點和要插入乙個節點相同,要找到要刪除的節點的前驅和後驅。
else
}return h;
}6.對鍊錶進行排序:這裡介紹氣泡排序,其中氣泡排序和用二級指針對字串排序是不相同的,在這裡直接做值的交換而不是交換指標,對於指標的寫法需要注意一下,和陣列相比仍然沒有改變的是還是做了n*n次運算,仍然是雙重迴圈。
linked bouble(linked h,int n)
p2=p2->next;
} p1=p1->next;
}return h;
}
7.建立乙個有序的單鏈表就有兩種思路了,可以先用一種鍊錶建立方法建立乙個鍊錶,然後再進行排序,也可以一邊建立節點,一邊插入,這裡我們討論後一種,一邊建立節點,一邊插入。
void insert(linked h,linked tmp)
pre->next=tmp;
tmp->next=p;
}linked get_linkedlist(int n)
return h;
}
8.在主函式的引用:
int main(
)
單鏈表的各種基本運算
輸入 實驗題2 2 include includetypedef char elemtype typedef struct lnode linklist 使用頭插法 void createlistf linklist l,elemtype a,int n 使用尾插法 void createlistr...
單鏈表各種基本運算的演算法
include includetypedef char elemtype typedef struct lnode linknode 宣告單鏈表節點型別 void createlistf linknode l,elemtype a,int n 頭插法建立單鏈表 void createlistr li...
實驗一 單鏈表的各種基本運算
編寫乙個程式,實現單鏈表的各種基本運算 建立乙個單鏈表,實現單鏈表的初始化,插入 刪除節點等功能,以及確定某一元素在單鏈表中的位置。1 初始化單鏈表 2 依次採用尾插入法插入a,b,c,d,e元素 3 輸出單鏈表l 4 輸出單鏈表l的長度 5 判斷單鏈表l是否為空 6 輸出單鏈表l的第三個元素 7 ...