最近新學的關於鍊錶的操作,做了乙個小小的總結吧,鍊錶的一些簡單操作。
文筆比較拙略,望高手諒解,指正。
**均已經在dev上測試執行,保證無錯。
如果有和我一樣的新手大家可以一起交流一下。
#include
#include
struct test
;struct test *creat_from_head();
struct test *creat_from_tail();
void print(struct test *head);
struct test *antitone1(struct test *head);
struct test *antitone2(struct test *head);
struct test *sort1(struct test *head);
struct test *sort2(struct test *head);
int main(void)
case
2:
default :
}printf("\n");
print(p1);
printf("\n");
printf("選擇鍊錶的反序方式\n");
printf("1 三變數反序\n");
printf("2 兩變數反序\n");
scanf("%d",&item);
fflush(stdin);
printf("\n");
switch(item)
case
2:
default :
}print(p2);
printf("\n");
printf("\n");
printf("選擇鍊錶的排序方式\n");
printf("1 直接排序\n");
printf("2 選擇排序\n");
scanf("%d",&item);
fflush(stdin);
printf("\n");
switch(item)
case
2:
default :
}print(p3);
printf("\n");
return0;}
struct test *creat_from_tail()
pnew->next=null;
tail->next=pnew;
tail=pnew;
}}/*頭插法建立鍊錶*/
struct test *creat_from_head()
pnew->next=head->next;
head->next=pnew;
}}/*用於輸出鍊錶 */
void print(struct test *head)
}/*鍊錶的直接比較排序(名字可能不太恰當) (由小到大)*/
struct test *sort1(struct test *head)
else
}q1->next=tem; /*將無序鍊錶中找出的結點插入到有序鍊錶中*/
tem->next=q2;
}return head;
}/*用來反序鍊錶 (把刪除放到這裡,是應為這個思想和上面排序的思想有一定的相似)*/
struct test *antitone1(struct test *head)
return head;
} /*想比上面那這種,這種我覺得更加簡潔明瞭,而且自己定義兩個變數就完成了逆置*/
struct test *antitone2(struct test *head)
return head;
}/*鍊錶的選擇排序 (由小到大)*/
/*這個方法是在原始鍊錶中找到最小結點後,放入新鍊錶,並且把找到的最小在原先鍊錶中刪除*/
struct test *sort2(struct test *head)
}if(sorted->next==null) /*將找出的插入到有序鍊錶中*/
else
p_min->next=min->next; /*將最小的結點在原鍊錶刪除*/
}if(sorted->next!=null)
head=sorted;
return head;
}
鍊錶 整理小結
我們知道,陣列式計算機根據事先定義好的陣列型別與長度自動為其分配一連續的儲存單元,相同陣列的位置和距離都是固定的,也就是說,任何乙個陣列元素的位址都可乙個簡單的公式計算出來,因此這種結構可以有效的對陣列元素進行隨機訪問。但若對陣列元素進行插入和刪除操作,則會引起大量資料的移動,從而使簡單的資料處理變...
鍊錶小結(1)
所謂鍊錶,顧名思義是像鏈條一樣的,鏈條是由乙個乙個的鏈結連起來的,所以在煉表裡也有相似的結構,在煉表裡存放資料是無序的,它是由乙個乙個的結點連起來的,而在每個結點裡存放了資料,這樣整個連起來就形成了鍊錶。而鍊錶還分為單向鍊錶 迴圈鍊錶 雙向鍊錶。下面就來簡單說下單向鍊錶。public class l...
鍊錶 整理小結
我們知道,陣列式計算機根據事先定義好的陣列型別與長度自動為其分配一連續的儲存單元,相同陣列的位置和距離都是固定的,也就是說,任何乙個陣列元素的位址都可乙個簡單的公式計算出來,因此這種結構可以有效的對陣列元素進行隨機訪問。但若對陣列元素進行插入和刪除操作,則會引起大量資料的移動,從而使簡單的資料處理變...