鍊錶操作 基本程式

2022-07-15 23:33:21 字數 1275 閱讀 6135

(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...