#include<stdio.h>
void insert (int s[],int x,int *pn)
void main()
{
int a[10]={10,7,5,2};
int x,i,n=4;
scanf("%d",&x);
insert(a,x,&n);
for(i=0;i<n;i++)
printf(" %5d ",a[i]);
}
void insert (int s[],int x,int *pn)
{
int j=*pn-1;
while(s[j]<x&&j>=0)
{ s[j+1]=s[j];
j--;
}
s[j+1]=x;
*pn++;
}
#include<stdio.h>
#define MAXLEN 10
/*定义顺序线性表的数据类型 */
typedef struct
{int list[MAXLEN];
int length;
}SeqList;
void insert(SeqList *L,int x);
void main()
{
SeqList a;
int i,x;
printf("输入线性表的表长,\n");
scanf("%d",&a.length);
printf("输入线性表中各个元素的值,从大到小 \n");
for(i=0;i<a.length;i++)
scanf("%d",&a.list[i]);
printf("输入待插元素的值,\n");
scanf("%d",&x);
insert(&a,x);
printf("插入后的结果为,\n");
for(i=0;i<a.length;i++)
printf(" %5d ",a.list[i]);
}
void insert (SeqList *L,int x)
{
int j;
j=L->length-1;
while(L->list[j]<x&&j>=0)
{ L->list[j+1]=L->list[j];
j--;
}
L->list[j+1]=x;
L->length++;
}
void insert(int a[],int *pn,int b[],m)
{int i,j;
for(i=m-1;i>=0;i--)
{ j=*pn-1;
while(a[j]>b[i]&&j>=0)
{ a[j+1]=a[j];
j--;
}
a[j+1]=b[i];
*pn++;
}
}
void main()
{
int a[10]={1,3,5,7,9};
int b[5]={2,4,6,8,10};
int x,n=5,m=5;
insert(a,&n,b,m);
for(i=0;i<n;i++)
printf(" %5d ",a[i]);
}
void insert(int a[],int *pn,int b[],m)
{int i,j;
for(i=m-1;i>=0;i--)
{ j=*pn-1;
while(a[j]>b[i]&&j>=0)
{ a[j+1]=a[j];
j--;
}
a[j+1]=b[i];
*pn++;
}
}
void main()
{
int a[10]={1,3,5,7,9};
int b[5]={2,4,6,8,10};
int x,n=5,m=5;
insert(a,&n,b,m);
for(i=0;i<n;i++)
printf(" %5d ",a[i]);
}
return(i);
}
void InsertList(SeqList *L,int i,ElemType x)
{
int j,n;
n=L->length;
if (i<1||i>n+1)
{
printf("\n i值不合法?");
exit(1);
}
if(n>=MAXLEN)
{
printf("\n 表空间溢出 ");
exit(1);
}
for(j=n-1;j>=i-1;j--)
L->list[j+1]=L->list[j]; /*元素向后移动一个位置 */
L->list[i-1]=x; /*插入 x */
L->length++; /*表长增 1*/
}
p=head->next;
q=head;
while(p->data.num!=knum&&p!=NULL)
{q=p;
p=p->next;
}
if(p->data.num==knum)
{s->next=p;
q->next=s;}
else
printf("invalid insert position\n");
}
/***************************在单链表中删除指定编号商品结点的函数
***************************/
void dele(NODE* head,long int knum)
{ NODE *p,*q;
p=head->next;
q=head;
while(p->data.num!=knum&&p!=NULL)
{q=p;
p=p->next;
}
if(p->data.num==knum)
{q->next=p->next;
else
{for(i=k;i<*pn;i++)
g[i-1]=g[i];
(*pn)--;
}
}
int search(GOODS g[],int n,long int tnum)
//查找功能,tnum为待查商品的编号
{int i;
i=n-1;
while(i>=0&&g[i].num!=tnum)
i--;
return(i);
/*若查找成功,返回元素所在的位置;若查找失败,则返回 -1值 */
}
void sale(GOODS g[],int n)
{GOODS a[100];
int i,j=0,k,count;
long tnum;
float money=0.0;
printf("input sale goods num:");
scanf("%ld",&tnum);
p=head; /*尾结点初始化为头结点 */
printf("输入各结点的元素值,以 -1结束输入
\n");
scanf("%d",&x);
while(x!=-1)
{s=(NODE*)malloc(LEN);/*申请新结点空间
*/
s->data=x;/*给新结点的数据域赋值 */
s->next=NULL;/*将新结点的指针域初始化为空 */
p->next=s; /*将新结点链接到表尾 */
p=s; /*新结点成为新链表的尾结点 */
scanf("%d",&x);
}
return head;
}
void output(NODE *head)
{NODE* p;
p=head->next;
while(p!=NULL)
{printf("%5d",p->data);
p=p->next;}
}