数据结构6-11

原创 2006年06月11日 12:43:00
6
#include <stdio.h>
#include <string.h>
#define maxsize 100
int C[maxsize];
char A[maxsize];
void frequency()
{
  char s[maxsize];
  int size,n=0,same=0;
  scanf("%s",&s);
  size=strlen(s);
  for(int j=0,k=j;j<size;j++,k++)
  {
    for(int p=0;p<k;p++)
    {
      if(s[j]==s[p])
      {
    same=1;
    break;
       //    C[p]=+1;
      }
      else
    same=0;
    }
    if(same==0)
    {
      A[n]=s[j];
      n++;
      }
  }
  for(int h=0;h<strlen(A);h++)
  {
    C[h]=0;
    for(int m=0;m<strlen(s);m++)
    {
      if(A[h]==s[m])
    C[h]++;
    }
  }
}
main()
{
  frequency();
  int len=strlen(A) ;
 // printf("%d ",len);
  for(int i=0;i<len;i++)
  {
    printf("%c  %d/n",A[i],C[i]);

  }
  printf("Different number is:%d ",len);
}

7
#include <stdio.h>
#include < malloc.h>
typedef float DataType;
typedef struct node{
  DataType data;
  struct node *next;
}ListNode;
typedef ListNode *LinkList;
void delBet(DataType min,DataType max,LinkList h)
{
  ListNode *p,*b;
  p=h;
  while(p->next!=NULL)
  {
    if(p->next->data>min && p->next->data<max)
    {
      b=p->next;
      p->next=b->next;
      free(b);
    }
    else
    {
      p=p->next;
    }
  }
}
main()
{
  DataType x[10]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
  LinkList head=(LinkList)malloc(sizeof(ListNode));
  ListNode *s,*r,*t;
  r=head;
  printf("The inital data are:");
  for(int i=0;i<10;i++)
  {
    s=(ListNode *)malloc(sizeof(ListNode));
    s->data=x[i];
    printf("%f ",s->data) ;
    r->next=s;
    r=s;
  }
  r->next=NULL;
  delBet(0.0,9.0,head);
  printf("/nThe result are:");
  t=head->next;
  while(t!=NULL)
  {
    printf("%f ",t->data);
    t=t->next;
  }
}


8
#include <stdio.h>
int pal(char A[],int s,int e)
{
  int i=(e-s)/2;
  for(int j=0;j<i;j++,s++,e--)
  {
    if(A[s-1]!=A[e-1])
      return 0;
    }
  return 1;

}
main()
{
  char Ch[500];
  scanf("%s",Ch);
  printf("%d",pal(Ch,1,5));
}

9
#include <stdio.h>
#include <malloc.h>
typedef struct BinTreeNode{
  char data;
  BinTreeNode *lChild,*rChild;
}BinTreeNode,*BinTree;
//typedef BinTreeNode* BinTree;
int BTreeHeight(BinTree BT)
{
  int dep1,dep2,max;
  if(BT==NULL)
    return 0;
  else
    {
    dep1=BTreeHeight(BT->lChild);
    dep2=BTreeHeight(BT->rChild);
    if(dep1>dep2)
      max=dep1;
    else
      max=dep2;
    return max+1;
    }
}
int CreateBTree(BinTree *b)
{
 char ch;
 ch=getchar();
 if(ch=='.')
  {
    *b=NULL;
  }
  else
  {
    (*b)=(BinTree)malloc(sizeof(BinTreeNode));
    (*b)->data=ch;
    CreateBTree(&((*b)->lChild));
    CreateBTree(&((*b)->rChild));
  }
}
main()
{
  int high;
  BinTree p=NULL;
  CreateBTree(&p);
  high=BTreeHeight(p);
  printf("The high is:%d",high);
}


10
#include <stdio.h>
int BinSearch(long R[],int n,long k)
{
  int low=0,high=n-1,mid;
  while(low<=high)
  {
    mid=(low+high)/2;
    if(k==R[mid])
      return mid;
    else if(k<R[mid])
      high=mid-1;
      else
      low=mid+1;
  }
  return -1;
}
main()
{
  int temp;
  long s[10]={1.2,3.4,5.6,6.8,7.9,8.9,9.0,11.0,12.9,14.0};
  temp=BinSearch(s,10,9.0);
  printf("%d",temp);
}

11
#include <stdio.h>
#include <string.h>
int static s1[10]={2,3,5,4,6,7,9,8,10,1};
int s2[10];
void countSort()
{
  int temp,k;
  for(int i=0;i<10;i++)
  {
    temp=s1[i];
    k=0;
    for(int j=0;j<10;j++)
    {
      if(temp>s1[j])
    k++;
    }
    s2[k]=temp;
  }
}
main()
{
  printf("The  unsorted numbers are:");
  for(int t=0;t<10;t++)
  {
    printf("%d ",s1[t]);
  }
  countSort();
  printf("/nThe sorted numbers are:");
  for(int p=0;p<10;p++)
  {
    printf("%d ",s2[p]);
  }
}

相关文章推荐

程序员面试题精选100题(11)-求二元查找树的镜像[数据结构]

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 /\ /\...

剑指offer--数据结构之二叉树(1、4、6、11、12、27、48、50、60)

offer1 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 二元查找树的中序遍历就是已经排序的序列,改成双向链表,可考虑,先把左子树改造成双...

泛函编程(6)-数据结构-List基础

List是一种最普通的泛函数据结构,比较直观,有良好的示范基础。List就像一个管子,里面可以装载一长条任何类型的东西。如需要对管子里的东西进行处理,则必须在管子内按直线顺序一个一个的来,这符合泛函编...

C数据结构完整PPT教材-大学课件

  • 2016年06月05日 09:59
  • 1.56MB
  • 下载

数据结构教程-源程序

  • 2012年10月15日 15:03
  • 107KB
  • 下载

程序员面试题精选100题(24)-栈的push、pop序列[数据结构]

题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、...

泰山学院-数据结构(零星).rar

  • 2007年07月04日 00:15
  • 173KB
  • 下载

ppt—清华大学-数据结构.rar

  • 2007年07月04日 00:13
  • 3.67MB
  • 下载

数据结构学习笔记(十)-图的最小生成树与拓扑排序

一、最小生成树首先应该理解最小生成树的定义: 包含图的所有顶点,V-1条边 没有回路 边的权重和最小 那么实际问题中用到最小生成树是什么时候呢?很多人都觉得学习算法没用,在实际生活工作...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构6-11
举报原因:
原因补充:

(最多只允许输入30个字)