#define _crt_secure_no_warnings #include#include
#include
typedef
struct
node
slist;
slist *slist_create(); //
建立鍊錶
int slist_print(slist *phead); //
遍歷鍊錶
int slist_nodeinsert(slist *phead, int x, int y); //
插入值 在x值之前 刪除y
int slist_nodedel(slist *phead, int
y);int slist_destory(slist *phead);
//建立鍊錶
slist *slist_create()
phead->data = 0
; phead->next =null;
printf(
"\nplease enter you data: ");
scanf("%d
", &data);
pcur =phead;
while (data != -1
)
pm->data =data;
pm->next =null;
//2 新結點 入鍊錶
pcur->next =pm;
//3 新結點變成當前節點
pcur = pm; //
鍊錶結點的尾部追加
printf(
"\nplease enter you data: ");
scanf("%d
", &data);
}return
phead;}//
列印鍊錶
int slist_print(slist *phead)
tmp = phead->next;
printf(
"\nbegin\t");
while
(tmp)
printf(
"\tend");
return0;
}//插入節點
int slist_nodeinsert(slist *phead, int x, int
y) pm->next =null;
pm->data =y;
//遍歷鍊錶
ppre =phead;
pcur = phead->next;
while
(pcur)
ppre =pcur;
pcur = pcur->next;
}//讓新結點 連線 後續鍊錶
pm->next = ppre->next;
//讓前驅節點 連線 新結點
ppre->next =pm;
return0;
}//刪除節點
int slist_nodedel(slist *phead, int
y) ppre =pcur;
pcur = pcur->next;
}//刪除操作
if (pcur ==null)
ppre->next = pcur->next;
if (pcur !=null)
return0;
}int slist_destory(slist *phead)
while (phead !=null)
return0;
}int slist_reverse(slist *phead)
//初始化
//前驅結點
p = phead->next;
q = phead->next->next;
//p = phead;
//**能相容
//q = phead->next;
//乙個結點 乙個結點的逆置
while
(q)
//頭節點 變成 尾部結點 後 置null
phead->next->next =null;
phead->next = p; //
return0;
}void
main()
C鍊錶操作
include include 定義乙個結構體 struct student 記錄個數 int icount 0 建立鍊錶 struct student create else pnew struct student malloc sizeof struct student scanf s pnew...
C 鍊錶操作
關於鍊錶操作,在c 當中微軟已經提供了乙個linkedlist的資料結構,通過這個類提供的一系列方法就能夠實現鍊錶操作。這裡我提供一段 這是在論壇裡面有人提問時給出的 它實現了自定義鍊錶的操作 讀者可以在此基礎上進一步完善 因為這段 涉及一些c 技巧,所以貼出來給初學者學習c 提供一點參考。實體類 ...
C 鍊錶操作總結和常見鍊錶操作
一 鍊錶的定義 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元 可以是連續的,也可以是不連續的 存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的,每個結點中的指標域指向下乙個結點。head是 頭指標 表示鍊錶的開始,用來指向第乙個結點,而最後乙個指標的指標域為n...