鍊錶的定義
鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個「頭指標」變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為「結點」,每個結點都應包括兩個部分:一為使用者需要用的實際資料,二為下乙個結點的位址。因此,head指向第乙個元素:第乙個元素又指向第二個元素;……,直到最後乙個元素,該元素不再指向其它元素,它稱為「表尾」,它的位址部分放乙個「null」(表示「空位址」),鍊錶到此結束。
結構體形式
struct test
;
鍊錶的插入
(1)頭插法
struct test *
insertfromhead
(struct test *head)
else
if(head ==
null
)else
}return head;
}
(2)尾插法
struct test *
insertfromtail
(struct test *head)
if(p ==
null
)else
if p->next = new;}}
return head;
}
(3)在指定節點前插
struct test *
insertfrombefore
(struct test *head,
int insert_data,
struct test *new)
//遍歷
while
(p->next !=
null
) p = p->next;
}printf
("no this data %d\n"
,insert_data)
;return head;
}
head:煉表頭節點
insert_data :被前插節點的值
new:新節點
(4)在指定節點後插
struct test *
insertfrombehind
(struct test *head,
int insert_data,
struct test *new)
p = p->next;
}printf
("no this data %d\n"
,insert_data)
;return head;
}
head:煉表頭節點
insert_data :被後插節點的值
new:新節點
鍊錶固定節點的刪除
struct test *
delelink
(struct test*head,
int data)
while
(p->next!=
null
) p=p->next;
}return head;
}
data:要刪除節點的data值
鍊錶的查詢
int
searchlink
(struct test* head,
int data)
head=head->next;
}}
鍊錶節點的計算
int
getlinknumbr
(struct test* head)
return cnt;
}
鍊錶的列印
void
printlink
(struct test *head)
putchar
('\n');
}
鍊錶空間的釋放
void
freespace
(struct text *head)
鍊錶 有序鍊錶(插入刪除遍歷)
插入的節點位置有兩種情況,一是有previous節點,而是沒有previous節點 鏈結點public class link public void displaylink public class sortedlist 插入資料 public void insert long key 說明key是...
鍊錶插入刪除
include include typedef struct node node,linklist void createlist linklist head 建立鍊錶 s node malloc sizeof node s next null s data data p next s p s in...
鍊錶 刪除鍊錶的節點
劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...