📄 4-4-12.c
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/
#include <stdio.h>
#include <malloc.h>
typedef struct node{
int key;
struct node *next;
}*LinkedList;
int movetoend(LinkedList La, int i){
LinkedList p,q,prep;
int k = 1;
p = La->next;prep = La;
while(p&&p->key != i) {/*查找第i个元素并使指针p指向该结点*/
prep = p; p = p->next;k++;
}
if(!p || k > i) return -1;
if(!p->next) /*第i个元素结点已经是表尾结点,则无需移动*/
return 0;
q = p;
while(q->next) q = q->next; /*查找表尾并使q指向表尾结点*/
prep->next = p->next;
p->next = NULL;
q->next = p;
return 0;
}
//下面的代码是测试时加进来的.
LinkedList Inilink(int *data,int n)
{ LinkedList head,p,q;
int i;
p=(LinkedList)malloc(sizeof(LinkedList));
p->key=data[0];
p->next=NULL;
head=p;
for(i=1;i<n;i++)
{
q=(LinkedList)malloc(sizeof(LinkedList));
q->key=data[i];
q->next=NULL;
p->next=q;
p=q;
}
return head;
}
main()
{ int a[]={13,15,17,18,23,1,2,3,4,5,6,7,8,9,10};
LinkedList linka;
linka=Inilink(a,15);
movetoend(linka,23);
while(linka)
{
printf(" %d ",linka->key);
linka=linka->next;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -