#包含?& ltstdio.h & gt
#包含?& ltmalloc.h & gt
typedef?int?類型;
typedef?結構?節點?{
類型?數據;
結構?節點?*下壹個;
}*LLIST、* pNode
利斯特。CreateList()?{?//?創建單個鏈接列表
利斯特。頭部;
pNode?p;
類型?num
頭?=?p?=?(pNode)malloc(sizeof(struct?節點));
p-》;數據?=?0;
while(scanf(“% d“,& ampnum)?==?1)?{
p-》;下壹個?=?(pNode)malloc(sizeof(struct?節點));
p-》;下壹個-& gt;數據?=?num
p?=?p-》;接下來;
}
p-》;下壹個?=?NULL
回歸?頭部;
}
虛空?排序(LLIST?頭)?{?//?按升序排序(選擇排序)
pNode?p、q、pt、Qt;
for(p?=?頭部;?p-》;接下來;?p?=?p-》;下壹個)?{
qt?=?p;
對於(q?=?p-》;接下來;?q-》;接下來;?q?=?q-》;下壹個)?{
if(Qt-》;下壹個-& gt;數據?& gt?q-》;下壹個-& gt;數據)
qt?=?q;
}
if(Qt?!=?p)?{
pt?=?p-》;接下來;
p-》;下壹個?=?Qt-》;接下來;
Qt-》;下壹個?=?p-》;下壹個-& gt;接下來;
p-》;下壹個-& gt;下壹個?=?pt;
}
}
}
int?insert elem(LLIST?頭像,類型?x,int?pos)?{
pNode?q、p;
int?我?=?1;
for(p?=?頭部;?p-》;下壹個?& amp& amp?我?& lt?pos?p?=?p-》;接下來,++ I);
如果(我?==?pos)?{
q?=?(pNode)malloc(sizeof(struct?節點));
q-》;數據?=?x;
q-》;下壹個?=?p-》;接下來;
p-》;下壹個?=?q;
回歸?1;?//?已成功插入指定位置。
}
回歸?0;?//?位置不在鏈接列表長度內。
}
int?delete elem(LLIST?頭,int?pos)?{
pNode?q、p;
int?我?=?1;
for(p?=?頭部;?p-》;下壹個?& amp& amp?我?& lt?pos?p?=?p-》;接下來,++ I);
如果(我?==?pos)?{
q?=?p-》;接下來;
p-》;下壹個?=?q-》;接下來;
免費(q);
回歸?1;?//指定的元素已成功刪除。
}
回歸?0;?//?找不到指定的元素,刪除操作失敗。
}
虛空?ShowList(LLIST?頭)?{
pNode?p?=?head-》;接下來;
while(p)?{
printf(“% d?,p-》;數據);
p?=?p-》;接下來;
}
printf(“\ n“);
}
int?main()?{
利斯特。頭?=?create list();
ShowList(head);
insert elem(head,15,5);
ShowList(head);
delete elem(head,7);
ShowList(head);
回歸?0;
}