當前位置:成語大全網 - 書法字典 - Qt字典排序

Qt字典排序

我寫的是《單向鏈表的基本操作》,比較難。我把“搜索和排序算法的應用”留給妳。

#包含?& 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;

}