鍊錶排序 氣泡排序

2021-08-15 23:31:00 字數 2282 閱讀 4919

動態陣列的儲存和排序

需求: c不支援動態陣列,申明的時候,一定要指明動態陣列的大小,不能將陣列的大小設定為未知數,但是很多情況 下,資料量的大小是未知數,或者資料量的大小會隨著問題的變化而變化。

解決:使用鍊錶結構來儲存資料

//

#include "stdafx.h"

//

#include "stdafx.h"

#include #include #include #include using namespace std;

// data

typedef struct

data;

typedef struct node

cltype;

// addtail

cltype *claddend(cltype *head, data nodedata)

else

htemp = head;

while(htemp->nextnode != null)

htemp->nextnode = node;

return head;

} }

// insertfirst

cltype *claddfirst(cltype *head, data nodedata)

else

}

// find key

cltype *clfindnode(cltype *head, char *key)

htemp = htemp->nextnode;

} return null;

}

// insert node

cltype *clinsertnode(cltype *head, char *findkey, data nodedata)

node->nodedata = nodedata;

nodetemp = clfindnode(head, findkey);

if(nodetemp)

else

return head;

}

// delnode

int cldeletenode(cltype *head, char *key)

else

} return 0;

}

// cl length

int cllength(cltype *head)

return len;

}

// show all

void clallnode(cltype *head)

} // 排序 氣泡排序方法

void dynamicsort(cltype *head)

// 煉表表頭置為煉表頭

htemp = head;

// 氣泡排序方法:

// ↓(i)

// ------------------- (len)

// ↑(j)---->|(len-i-1)

for (i = 0; i < len-1; i++)

htemp = htemp->nextnode;

} htemp = head; // 每次比較之後 將臨時鍊錶指標移到煉表頭

} }

int main()

{ cltype *node, *head = null;

data nodedata;

char key[10], findkey[10];

cout<<"test clist enter list init data format like: key name age"<>findkey;

cout<<"findkey"<>nodedata.key>>nodedata.name>>nodedata.age;

cout<>key;

cldeletenode(head, key);

clallnode(head);

cout<<"find enter you want find key:"<>key;

node = clfindnode(head, key);

if(node)

{ nodedata = node->nodedata;

cout<<"key"<

鍊錶氣泡排序

2011 07 22 21 33 111人閱讀收藏 舉報 任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則...

鍊錶氣泡排序

任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則有 p q 排序前 p1 next p1 next nex...

鍊錶的氣泡排序

writed by caolichen 氣泡排序練習,資料以鍊錶的結構儲存 include include 結點結構型別 typedef struct lnode slink 建立線性表,void createlink slink head,int n printf 建立線性表成功!n 氣泡排序,從...