(1)向後插入元素
void insert_tail(link p)
//head不為空
//則遍歷鍊錶,直至最後乙個節點
for(q = head; q->next;q=q->next);
q->next = p;//將新節點放置在最後乙個節點的後面
////需要將新節點的next指標置為null嗎?為什麼?
}(2) 中間插入元素
void insert_mid(link p)
}(3)插入排序
void insert_sort(link p)
for(q = head; q; q=q->next)
r = q;
}if(q == null)
}(4)鍊錶逆序
void reverse_1();}
head = head1;
}void reverse_2()
head = r;
}(6) 刪除 前(後)面元素
void del_3()
p = head;
for(i = 1;i < 3;i++)
p = p->next;
printf("3: %d\n",p->item);
delete(p);
free_node(p);
}void del_r_3()
p = head;q = p->next;
while(q->next)
printf("r_3: %d\n",r->item);
delete(r);
free_node(r);
}void del_r_k(int k)
p = head;
for(i = 1;i < k;i++)
q = head;
for(;p->next;)
printf("r_k: %d\n",q->item);
delete(q);
free_node(q);
}(7) 約瑟夫環
void josphus(int m, int n)
else
}tail->next = head;
p = head;
while(p!= p->next)
r->next = p->next;
free(p);
p = r->next;
}printf("%d\n",p->item);
free(p);
head = tail = null;
}
鍊錶基本操作
include include string h include typedef struct stust void xj st h 生成單鏈表 l l null void shc st h 輸出鍊錶 printf d n h d void chr st h 按大小插入元素 else h h l v...
鍊錶基本操作
動態記憶體的相關知識int p null 定義指標變數 p int malloc sizeof int 申請記憶體空間,並且進行強制型別轉換 p 3 使用指標變數 typedef struct list typedef struct listnode listpointer struct listn...
鍊錶基本操作
鍊錶就是c中利用結構體,將資料和下乙個結構體的位址封裝在乙個結構體中形成乙個節點,這些節點組合起來就是乙個基礎的鍊錶,根據需要可以擴充套件其中的內容來實現不同的需求。實現乙個鍊錶需要定義節點,建立,初始化,插入,刪除這些基本操作。include stdafx.h include stdlib.h i...