现在的位置: 首页 > 综合 > 正文

数据结构1-5

2013年11月28日 ⁄ 综合 ⁄ 共 2597字 ⁄ 字号 评论关闭
1
#include <stdio.h>
int succ(int x)
{
  return ++x;
}
int pred(int y)
{
  return --y;
}
int add(int& a,int& b)
{
  int x;
  if(b>0)
    x=add(succ(a),pred(b));
  if(b<0)
    x=add(pred(a),succ(b));
  if(b==0)
    x=a;
  if(a==0)
    x=b;
  return x;
}
int sub(int& a,int& b)
{
  int y;
  if(a==0)
    y=0-b;
  if(b==0)
    y=a;
  if(b>0)
    y=sub(pred(a),pred(b));
  if(b<0)
    y=sub(succ(a),succ(b));
  return y;
}
main()
{
  printf("%d ",add(1,-10));
  printf("%d ",sub(-1,-9));
}

2#include  <stdio.h>
#define ListSize 20
typedef struct{
  int data[ListSize];
  int length;
} Seqlist;
main()
{
  Seqlist *sql;
  int temp;
  printf("Please input ten integers:");
  for(int i=0;i<10;i++)
    scanf("%d",&sql->data[i]);
  sql->length=10;
  for(int j=sql->length-1,k=0;j>4;j--,k++)
  {
    temp=sql->data[k];
    sql->data[k]=sql->data[j];
    sql->data[j]=temp;
  }
  for(int m=0;m<sql->length;m++)
    printf("%d ",sql->data[m]);
}

3
#include <stdio.h>
#include <malloc.h>
typedef struct node{
  int data;
  struct node *next;
}ListNode;
typedef ListNode * LinkList;
void Lz(LinkList &t)
{
  ListNode *p,*q;
  p=NULL;
  while(t!=NULL)
  {
    q=t;
    t=t->next;
    q->next=p;
    p=q;
  }
  t=p;
}
main()
{
  LinkList head;
  ListNode *s, *r,*l;
  head=NULL;
  r=NULL;
  printf("Please input ten numbers:");
  for(int i=0;i<10;i++)
  {
    s=(ListNode*)malloc(sizeof(ListNode));
    scanf("%d",&s->data);
    if(head==NULL)
      head=s;
    else
      r->next=s;
    r=s;
  }
  if(r!=NULL)
    r->next=NULL;
  Lz(head);
  printf("The inversed ten numbers are:");
  l=head;
  for(int x=0;x<10;x++)
  {
    printf("%d ",l->data);
    l=l->next;
  }
}
顺序表
#include  <stdio.h>
#define ListSize 20
typedef struct{
  int data[ListSize];
  int length;
} Seqlist;
main()
{
  Seqlist *sql;
  int temp;
  printf("Please input ten integers:");
  for(int i=0;i<10;i++)
    scanf("%d",&sql->data[i]);
  sql->length=10;
  for(int j=sql->length-1,k=0;j>4;j--,k++)
  {
    temp=sql->data[k];
    sql->data[k]=sql->data[j];
    sql->data[j]=temp;
  }
  for(int m=0;m<sql->length;m++)
    printf("%d ",sql->data[m]);
}

4
#include <stdio.h>
#define maxsize 100
typedef char datatype;
typedef struct{
  datatype data[maxsize];
  int front,rear,count;
}cycqueue;
int EnQueue(cycqueue* sq,datatype x)
{
  if(sq->count==maxsize)
  {
    printf("full");
    return 0;
  }
  else
  {
    sq->count++;
    sq->data[sq->rear]=x;
    sq->rear=(sq->rear+1)%maxsize;
    return 1;
   }
}
main()
{
  int m;
  cycqueue *sq;
  sq->front=sq->rear=0;
  sq->count= 0;

  m=EnQueue(sq,'y');
  printf("%d ",m);
}

5
#include <stdio.h>
int C[9];
void combin(int A[5],int B[4])
{
  int m,p,temp;
  for(int i=0;i<5;i++)
    C[i]=A[i];
  for(int j=5;j<9;j++)
    C[j]=B[j-5];
  for(m=0;m<8;m++)
  {
  //  k=m;
    for(p=m+1;p<9;p++)
    //  if(C[p]<C[k])
      //    k=p;
   // if(k!=m)
    if(C[p]<C[m])
    {
      temp=C[m];C[m]=C[p];C[p]=temp;
    }
  }
}
main()
{
int a[5]={1,2000,3000,4,1},b[4]={0,97,100,20};
combin(a,b);
for(int f=0;f<9;f++)
  printf("%d ",C[f]);
}

抱歉!评论已关闭.