三.線性表筆記


1.將長度為n的單鏈表連接在長度為m的單鏈表之后,其算法的計算時間復雜度為O(m+N),因為在一個長度為n的單鏈表上訪問后繼結點只是進行一次間接尋址的操作,這個時間是常量,自然是O(1)了,但是通過單鏈表當前的地址,如果要訪問到其前驅,必須要從頭開始順序訪問,如果鏈表的有n個結點,平均時間為O(n),因此時間復雜度就是O(n)了。

2.在帶頭結點的雙向循環鏈表中插入一個新的結點,需要修改的指針域數量為4個。一般雙向鏈表節點定義 struct node{struct node*prev; struct node *next};插入一個新節點,struct node * newnode; 該新節點的prev要指向前面一個節點,next指向后面一個節點,前面一個節點的next要指向newnode,newnode 后面一二節點的prev要指向newnode,所以要修改4個指針

3.帶頭結點的單鏈表的頭指針為head,判斷鏈表為空的設置條件

LinkList Init Linklist()
{
  LinkList L;
  L=(LinkList)malloc(sizeof(LinkNode));
  L->next=NULL;
  return L;
}

4.循環單鏈表la中,指針p所指結點為表尾結點的條件p!=NULL && p->next==head

5.在線性表的順序存儲結構中,邏輯上相鄰的兩個元素在物理位置上一定相鄰,但是在鏈式結構上不一定相鄰

6.線性表其實就是一個帶有當前長度length和極限長度maxlength的數組,索引、排序等操作與普通數組完全相同,其邏輯順序,也就是存儲順序。線性表的邏輯順序與存儲順序總是一致的

7.線性表分為順序表和鏈表。順序表是以數組的形式來存儲的,壓根沒有前驅和后繼的這種叫法。而鏈表,頭結點是沒有前驅的,尾結點是沒有后繼的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM