動態陣列的儲存和排序
需求: 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 氣泡排序,從...