数据结构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]);
  }
}

PTA数据结构5-1,5-2

5-1 最大子列和问题 5-2 一元多项式的乘法与加法运算设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数...
  • Phenixfate
  • Phenixfate
  • 2015年09月07日 13:23
  • 1261

ES6入门——Set和Map数据结构

SetES6提供了新的数据结构Set。类似于数组,只不过其成员值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。 var s = new Set();// 通过add...
  • u014695532
  • u014695532
  • 2016年07月03日 14:05
  • 4677

数据结构 《6》----堆 ( Heap )

经典数据结构----堆的具体实现,以及应用堆解决的4个实际问题
  • u012653791
  • u012653791
  • 2014年01月28日 22:01
  • 1140

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

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

线性表6 – 数据结构和算法11

线性表6   让编程改变世界 Change the world by program   单链表的插入   我们先来看下单链表的插入。假设存储元素e的结点为s,要实现结点p、p->ne...
  • Andy2016
  • Andy2016
  • 2015年11月16日 16:56
  • 216

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

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

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

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

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

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

数据结构教程(第5版)-源程序

  • 2017年11月22日 10:43
  • 120KB
  • 下载

数据结构C语言版严蔚敏著-包含电子书和配套学习讲义

  • 2010年01月08日 22:15
  • 8.45MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构6-11
举报原因:
原因补充:

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