c語言連結清單,頭插法和尾插法
2018年10月12日
| 萬仟網IT程式設計
|
我要評論
#include
#include
#include
typedef struct stdata{
int e;
}data;
typedef struct s
#include
#include
#include
typedef struct stdata{
int e;
}data;
typedef struct stlink{
data data;
struct stlink* next;
}link;
struct link* create(){
link* head = (link*)malloc(sizeof(link));
memset(&head->data,0,sizeof(link));
head->next = null;
return head;
}
void head_insert(link* head,data e){
link *ptemp,*pnew;
if (head->data.e != 0){
ptemp = head->next;
pnew = (link*)malloc(sizeof(link));
memcpy(&pnew->data,&e,sizeof(data));
pnew->next = ptemp;
head->next = pnew;
}else{
memcpy(&head->data,&e,sizeof(data));
}
}
void nial_insert(link* head,data e){
link *ptemp,*pnew;
ptemp = head;
if (head->data.e != 0){
pnew = (link*)malloc(sizeof(link));
memcpy(&pnew->data,&e,sizeof(data));
while(ptemp->next != null)
ptemp = ptemp->next;
ptemp->next = pnew;
pnew->next = null;
}
else{
memcpy(&head->data,&e,sizeof(data));
}
}
void dele(link* head,data e){
link *pbefore = head;
link *ptemp = head;
while(ptemp->next != null){
if (ptemp->data.e == e.e)
{
link *pdel = ptemp;
pbefore->next = ptemp->next;
pdel->next = null;
free(pdel);
return;
}else{
pbefore = ptemp;
ptemp = ptemp->next;
}
}
if (ptemp->data.e == e.e)
{
link *pdel = ptemp;
pbefore->next = ptemp->next;
pdel->next = null;
free(pdel);
}
}
void show(link* head){
link *ptemp = head;
while(ptemp->next != null){
printf("%d \n",ptemp->data.e);
ptemp = ptemp->next;
}
printf("%d \n",ptemp->data.e);
}
int main()
{
link *head = create();
data e1={1001},e2={1002},e3={1003},e4={1004};
//head_insert(head,e1);
//head_insert(head,e2);
//head_insert(head,e3);
//head_insert(head,e4);
nial_insert(head,e1);
nial_insert(head,e2);
nial_insert(head,e3);
nial_insert(head,e4);
show(head);
printf("dele------------\n");
dele(head,e2);
show(head);
return 0;
}
版權聲明:本文内容由網際網路使用者貢獻,該文觀點僅代表作者本人。本站僅提供資訊存儲服務,不擁有所有權,不承擔相關法律責任。
如發現本站有涉嫌抄襲侵權/違法違規的内容, 請發送郵件至 [email protected] 舉報,一經查實将立刻删除。
相關文章:
類定義時的靜态成員隻是聲明,靜态成員的定義和初始化要在類之外完成c++的static關鍵字可修飾類成員變量/方法,表示變量/方法不從屬于特定對象,而是屬于類的。...
今天更新一個C語言的循環,簡單點就是就是我們平時在使用電腦時不停的重新整理網頁,生活中每天都要吃飯等等就是循環,而程式設計中也有不斷循環的過程,或者遇到符合...
const 在 的右邊:不可以改指針的指向,可以用指針改裡面的值 int const p; const在 的左邊:可以改指針的指向,不可以用指針改裡...
題目連結:HDU-2222 或 Vjudge 簡單說明: 題意是按行給出n個串,再給一個文本,問在文本中出現了串中的幾個。題目沒強調串是互不相同的哦...
一、異常處理
1. 異常的概念
程式在運作過程中可能産生異常 異常(Exception)與Bug的差別
異常時程式運作時可預料的執行分...
1:直接插入排序基本思想:在插入第i(i>1)個記錄時,前面的i-1個記錄已經好序2:例子r0 1...
架構設計是一個非常大的話題,不管寫幾篇文章,接觸到的始終隻是冰山一角,更多的是實踐中去體會。這篇文章主要介紹面向對象OO、面向方面AOP和面向服務S...
c++的繼承作為它的一個特性,必須要做到深入了解,對于c++繼承方式,我們之前講過,有單繼承,多繼承,菱形繼承,虛拟繼承,菱形虛拟繼承。
這次我們來深入探究一...
前言 第一級是直接調用 配置設定空間, 調用 釋放空間, 第二級三就是建立一個記憶體池, 小于128位元組的申請都直接在記憶體池申請, 不直接調用 和`fre...
網友評論
驗證碼: