#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Node, *pNode;
pNode create_list()
{
int len = 0, i=0, val=0;
pNode phead = (pNode)malloc(sizeof(Node));
if(NULL == phead)
{
printf("内存分配失败!\n");
exit(-1);
}
pNode ptail = phead;
ptail->next = NULL;
printf("请输入元素的个数:len=");
scanf("%d", &len);
for(i=0;i<len;i++)
{
printf("请输入第%d个元素:", i+1);
scanf("%d", &val);
pNode pNew = (pNode)malloc(sizeof(Node));
if(NULL == pNew)
{
printf("内存分配失败!\n");
exit(-1);
}
pNew->data = val;
ptail->next = pNew;
pNew->next = NULL;
ptail = pNew;
}
return phead;
}
void traverse_list(pNode phead)
{
pNode p = phead->next;
while(NULL != p)
{
printf("%d\n", p->data);
p = p->next;
}
}
int solve_len(pNode phead)
{
int length = 0;
pNode p = phead->next;
while(NULL != p)
{
p = p->next;
length++;
}
return length;
}
bool insert_list(pNode phead, int pos, int num)
{
int i=0, length = 0;
pNode p = phead;
length = solve_len(phead);
while(NULL!= p && i<pos-1)
{
p=p->next;
i++;
}
if(i>pos-1 || NULL==p)
return false;
pNode pNew = (pNode)malloc(sizeof(Node));
if(NULL == pNew)
{
printf("内存分配失败!\n");
exit(-1);
}
pNew->data = num;
pNode q = p->next;
p->next = pNew;
pNew->next = q;
}
bool delete_list(pNode phead, int pos)
{
int i = 0;
// pNode p = phead->next;
pNode p = phead;
// while(NULL!= p && i<pos)
while(NULL!=p->next && i<pos-1)
{
p = p->next;
i++;
}
// if(i>pos || NULL==p)
if(i>pos-1 || NULL==p->next)
return false;
pNode q = p->next;
p->next = p->next->next;
//p->next = q->next;
free(q);
q == NULL;
return true;
}
void sore_list(pNode phead)
{
int i, j, t;
pNode p;
pNode q;
int len = solve_len(phead);
for(i=0, p=phead->next;i<len-1;i++, p=p->next)
{
for(j=i+1, q = p->next;j<len;j++, q->q->next)
{
if(p->data > q->data)
{
t = p->data;
p->data = q->data;
q->data = t;
}
}
}
}
int main()
{
int pos, num;
pNode phead = NULL;
phead = create_list();
// insert_list(phead, 3, 10);
delete_list(phead, 2);
sore_list(phead);
traverse_list(phead);
system("pause");
return 0;
}`
单链表创建,插入,删除,排序,倒置:c语言版本. 此处的排序是哪种排序方式呢?和冒泡排序很相似,但又不同。求指点
最新推荐文章于 2019-12-09 22:15:13 发布