typedef struct node
node;
node* create(); // 建立單鏈表
int length(node *head); // 計算單鏈表的長度
void print(node *head); // 單鏈表的列印
node* search_node(node* head, int pos); // 單鏈表節點的查詢,從0開始,0返回head節點
bool insert_node(node* head, int pos, int data); // 在第pos個節點之後插入節點
bool delete_node(node* head, int pos); // 刪除第pos個節點
void reverse(node* head); // 單鏈表逆置
node* search_mid(node* head); // 尋找單鏈表的中間節點
void insert_sort(node* head); // 單鏈表的正向排序
bool isloop(node* head, node* start); // 判斷單鏈表是否存在環,start存放環的入口節點
void mergelink(node* head1, node* head2); // 有序單鏈表合併
node* create() // 建立單鏈表
p = (node*)malloc(sizeof(node));
assert(p!=null);
p->data = temp;
if (isfirst)
else
q = p;
} p->next = null;
return head;
}int length(node *head) // 計算單鏈表的長度
return count;
}void print(node *head) // 單鏈表的列印
cout << endl;
}node* search_node(node* head, int pos) // 單鏈表節點的查詢,從0開始,0返回head節點
int count = 0;
node* p = head;
while (p != null)
count++;
p = p->next;
} return null;
}bool insert_node(node* head, int pos, int data) // 在第pos個節點之後插入節點
node* p = search_node(head, pos);
if (p != null) // p是尾節點或者中間節點
return false;
}bool delete_node(node* head, int pos) // 刪除第pos個節點,pos不能為0
node* q = search_node(head, pos-1); // 記錄第pos個節點的前驅pos-1
node* p = q->next; // 記錄第pos個節點
if (p != null) // 刪除節點p
return false;
}void reverse(node* head) // 單鏈表逆置
}node* search_mid(node* head) // 尋找單鏈表的中間節點
i++;
current = current->next;
} return mid;
}void insert_sort(node* head) // 單鏈表的正向排序(公升序)
node* p = head->next->next; // 第二個節點
node* r = null;
head->next->next = null; // 保留第乙個節點,後續的節點使用插入排序
node* pre = head;
node* cur = head->next;
while (p != null)
pre->next = r;
r->next = cur; }}
bool isloop(node* head, node* start) // 判斷單鏈表是否存在環,start存放環的入口節點
node* p = head;
node* q = head;
while (q!=null && q->next!=null && p!=q)
if (p == q)
return false;
}// 依次將第二個鍊錶中的節點插入到第乙個鍊錶中
void mergelink(node* head1, node* head2) // 有序單鏈表合併
node* p = head2->next; // 第二個鍊錶
node* r = head2;
node* pre = head1; // 第乙個鍊錶
node* cur = head1->next;
while (p != null)
pre->next = r;
r->next = cur;
}}
單鏈表的實現
include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...
單鏈表的實現
單鏈表夜市線性表的一種表現形式,乙個表節點由乙個資料空間和乙個指標域組成。指標域記錄下乙個結點的位址。鍊錶在插入,刪除功能中效率高。但是讀取某個結點的時候需要順序讀取。效率不如順序儲存形式。下面是一些鍊錶實現的 鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h define...
單鏈表的實現
單鏈表是資料結構中重要並且基礎的一環,學習資料結構就需要知道單鏈表有的常用操作。1 單鏈表的頭插式建立 2 單鏈表的尾插式建立 3 單鏈表的長度計算 4 單鏈表的列印輸出 5 單鏈表的釋放操作 6 單鏈表是否為空判斷 7 單鏈表在指定index插入指定元素 8 單鏈表刪除指定index的節點 9 單...