鱼C论坛

 找回密码
 立即注册
查看: 3703|回复: 2

[已解决]初入论坛小鱼友,寻求各位的帮助

[复制链接]
发表于 2017-6-14 15:34:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1
实验名称:线性表的存储及运算
实验目的:通过实验能够学会线性表的两种存储方式。
实验内容:1.建立4个元素的顺序表list[] = {2, 3 , 4 , 5},实现顺序表建立及插入和删除的基本操作。2.建立一个包括头结点和3个结点{4,3,1}的单链表及插入、删除、查找等基本操作。
2
实验名称:二叉树的表示及运算
实验目的:通过实验能够学会二叉树的建立与遍历。
实验内容:建立一棵二叉树,并用递归或非递归的算法分别用先序、中序和后序遍历之。
3
实验名称:查找表的存储及运算
实验目的:通过实验能够学会对有序表的查找。
实验内容:建立一个记录有序表并实现其上的折半查找
4
实验名称:内部排序的方法。
实验目的:通过实验能够学会折半插入排序的方法。
实验内容:输入待排序记录。用顺序存储结构存储,并用折半插入排序对其排序.



这是数据结构与算法里面的基本实验,小鱼友不是很精通,特来论坛求助各位大佬,希望能得到实现上述实验的源码以及必要的注释,谢谢谢谢,时间比较紧,希望看到的鱼友、大佬能帮帮我,万分感谢。
最佳答案
2017-6-16 23:31:44
本帖最后由 楦潇鸢笕 于 2017-6-16 23:36 编辑

1:单链表的存储与基本操作
#include<stdio.h>
#include<stdlib.h>
typedef int elemType;
typedef struct Node
{
        elemType date;
        struct Node *next;
}LNode,*LinkList;
//单链表的建立
LinkList CreteList(int n)
{
        LinkList L,p;
        L=(LinkList)malloc(sizeof(LNode));
        L->next =NULL;
        elemType e;
        if(!L)
          return 0;
        while(n--)
        {
                scanf("%d",&e);
                p=(LinkList)malloc(sizeof(LNode));
                p->date =e;
                p->next =L->next ;
                L->next =p;
          }  
          return L;
}
//指定位置的插入
int Listinsert(LinkList L,int i,elemType e)
{
  if(i<1)
     return 0;
  LinkList P;
  int j=0;
  while(L&&j<=i-1)
  {
          L=L->next ;
          j++;
  }   
  P=(LinkList)malloc(sizeof(LNode));
  P->date =e;
  P->next =L->next ;
  L->next =P;
  return 0;
}
指定位置的删除,并以e返回其值
int Listdelete(LinkList L,int i,elemType *e)
{
        if(i<1)
          return 0;
        LinkList q;
        int j=0;
        while(L->next &&j<=i-1)
        {
           L=L->next ;
           j++;        
        }  
        if(!L->next ) return 0;
        q=L->next ;
        *e=q->date ;
        L->next =q->next ;
        return 1;
}
2:二叉树的存储及建立
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode
{
    TElemType date;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//构造二叉树
BiTree CreateBiTree()
{
    BiTree T;
    int a;
    scanf("%c",&a);
    if(a=='^')
      T=NULL;
    else
      {
        T=(BiTNode *)malloc(sizeof(BiTNode));
        if(!T)  exit(-1);
        T->date=a;
        T->lchild=CreateBiTree();
        T->rchild=CreateBiTree();
      }  
      return T;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-16 23:31:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 楦潇鸢笕 于 2017-6-16 23:36 编辑

1:单链表的存储与基本操作
#include<stdio.h>
#include<stdlib.h>
typedef int elemType;
typedef struct Node
{
        elemType date;
        struct Node *next;
}LNode,*LinkList;
//单链表的建立
LinkList CreteList(int n)
{
        LinkList L,p;
        L=(LinkList)malloc(sizeof(LNode));
        L->next =NULL;
        elemType e;
        if(!L)
          return 0;
        while(n--)
        {
                scanf("%d",&e);
                p=(LinkList)malloc(sizeof(LNode));
                p->date =e;
                p->next =L->next ;
                L->next =p;
          }  
          return L;
}
//指定位置的插入
int Listinsert(LinkList L,int i,elemType e)
{
  if(i<1)
     return 0;
  LinkList P;
  int j=0;
  while(L&&j<=i-1)
  {
          L=L->next ;
          j++;
  }   
  P=(LinkList)malloc(sizeof(LNode));
  P->date =e;
  P->next =L->next ;
  L->next =P;
  return 0;
}
指定位置的删除,并以e返回其值
int Listdelete(LinkList L,int i,elemType *e)
{
        if(i<1)
          return 0;
        LinkList q;
        int j=0;
        while(L->next &&j<=i-1)
        {
           L=L->next ;
           j++;        
        }  
        if(!L->next ) return 0;
        q=L->next ;
        *e=q->date ;
        L->next =q->next ;
        return 1;
}
2:二叉树的存储及建立
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode
{
    TElemType date;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//构造二叉树
BiTree CreateBiTree()
{
    BiTree T;
    int a;
    scanf("%c",&a);
    if(a=='^')
      T=NULL;
    else
      {
        T=(BiTNode *)malloc(sizeof(BiTNode));
        if(!T)  exit(-1);
        T->date=a;
        T->lchild=CreateBiTree();
        T->rchild=CreateBiTree();
      }  
      return T;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-6-18 17:55:20 | 显示全部楼层
楦潇鸢笕 发表于 2017-6-16 23:31
1:单链表的存储与基本操作
#include
#include

谢谢大佬   谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 19:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表