#include<stdio.h>
#include<malloc.h>
#include<assert.h>
typedef struct Node {
int data;
struct Node* next;
}*LPNODE;
typedef struct List {
LPNODE headNode;
int curSize;
}*LPSQL;
LPNODE CreateHead() {
LPNODE headNode = (LPNODE)calloc(1, sizeof(Node));
assert(headNode);
headNode->next = NULL;
return headNode;
}
LPNODE CreateNode(int data) {
LPNODE newNode = (LPNODE)malloc(sizeof(Node));
assert(newNode);
newNode->data = data;
newNode->next = NULL;
return newNode;
}
LPSQL CreateList() {
LPSQL sqlist = (LPSQL)malloc(sizeof(List));
assert(sqlist);
sqlist->curSize = 0;
sqlist->headNode = CreateHead();
return sqlist;
}
void PushBySqlist(LPSQL list,int data) {
LPNODE newNode = CreateNode(data);
LPNODE LeftNode = list->headNode;
LPNODE PosNode = list->headNode->next;
while (PosNode != NULL && PosNode->data < data) {
LeftNode = PosNode;
PosNode = PosNode->next;
}
LeftNode->next = newNode;
newNode->next = PosNode;
list->curSize++;
}
void PrintList(LPSQL list) {
LPNODE pMove = list->headNode->next;
while (pMove) {
printf("%d\t", pMove->data);
pMove = pMove->next;
}
printf("\n");
}
int main() {
LPSQL list = CreateList();
int Array[10] = { 4,5,3,2,8,9,1,7,0,5};
for (int i = 0; i < 10; i++)
PushBySqlist(list, i);
PrintList(list);
return 0;
}
链式顺序表
最新推荐文章于 2024-07-18 15:57:18 发布