• 大小: 18KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 排序验证  线性表  

资源简介

南邮数据结构实验源码。内容包括线性表及多项式运算、二叉树基本操作的实现及哈夫曼、图的基本运算实现和最短路径问题、排序验证

资源截图

代码片段和文件信息

#include
#include

typedef int ElemType;

typedef struct Node
{
ElemType element;
struct Node *link;
}Node;                   /*定义Node*/
typedef struct
{
struct Node *head;
int n;
}HeaderList;            /*定义HeaderList*/
/*初始化*/
void Init(HeaderList *h)
{
h->head=(Node*)malloc(sizeof(Node));
if (!h->head)
printf(“初始化失败\n“);
h->head->link=NULL;
h->head->element=0;
h->n=0;
printf(“初始化完成\n“);
return ;
}
/*插入,在第i个位置后插入*/
void Insert(HeaderList *hint iElemType x)
{
int j;
if (i<-1 || i>h->n-1 )
printf(“插入位置不合理\n“);
Node *p*q;
p=h->head;                                
for (j=0;j<=i;j++)
p=p->link;            /*找到插入位置,第i处*/
q=(Node*)malloc(sizeof(Node));        /*为q申请空间*/
q->element=x;
q->link=p->link;  
p->link=q;                   /*插入成功*/
h->n++;                     /*更新长度值*/
printf(“插入成功\n“);
return ;
}
/*删除第i个元素*/
void Delete(HeaderList *hint i)
{
int j;
Node *p*q;
if(!h->n)
printf(“表空,没有删除项“);
if(i<-1||i>h->n-1)
printf(“下标不合法“);
p=h->head;
for(j=0;j p=p->link;          /*找到要删除的前一项*/
q=p->link;               /*q指向删除的结点*/
p->link=q->link;           /*让q指结点脱离链表*/
free(q);
h->n--;
return ;
}




/*查找第i个元素,将值存到x中*/
void Find(HeaderList hint iElemType *x)
{
int j;
Node *p;
if (i<0 || i>h.n-1 )
printf(“下标不合法\n“);
p=h.head;                                       
for (j=0;j p=p->link;
*x=p->link->element;
printf(“查找成功\n“);
return ;
}
/*输出函数*/
void Display(HeaderList h)
{
    if(h.n==0) 
{
printf(“表空!\n“);
}
    Node *p=h.head;
    while(p->link)
    {
        p=p->link;
        printf(“%d “p->element);
    }
    printf(“\n“);
}
/*撤销函数*/
void Destroy(HeaderList *h)
{
Node *p;
while (h->head->link)   
{
p=h->head->link;
free(h->head);
h->head=p;
h->n--;
}
return ;
}


/*逆置链表*/
void Inverse(HeaderList *h)
{
    if(h->n==0||h->n==1) 
printf(“无须逆置\n“);
    Node *p1*p2*p3;
    p1=h->head;
    p2=p1->link;
    while(p2)
    {
        p3=p2->link;
        p2->link=p1;
        p1=p2;
        p2=p3;
    }
    h->head->link->link=NULL;
    h->head->link=p1;
    printf(“逆置成功\n“);
return ;
}
/*主函数*/
int main()
{
int i;
int x;
int mn;
HeaderList h1;
Init(&h1);
for (i=0;i<10;i++)
Insert(&h1i-1i+1);
printf(“输出初始化列表:\n“);
Display(h1);

printf(“在第m个位置后插入元素n,请输入mn:\n“);
scanf(“%d%d“&m&n);
Insert(&h1mn);
Display(h1);

Inverse(&h1);
printf(“输出逆置后:\n“);
   Display(h1);

printf(“删除第m个元素,输入m:\n“);
scanf(“%d“&m);
Delete(&h1m);
Display(h1);

printf(“查找第m个元素,输入m:\n“);
scanf(“%d“&m);
Find(h1m-1&x);
printf(“查找结果:“);
printf(“%d\n“x);

Destroy(&h1);
printf(“撤销链表后输出:\n“);
Display(h1);

return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-10 20:03  数据结构实验\
     目录           0  2019-03-10 20:03  数据结构实验\数据结构实验一\
     文件        3049  2019-03-10 18:47  数据结构实验\数据结构实验一\HeaderList.cpp
     文件        4678  2019-03-10 18:51  数据结构实验\数据结构实验一\polynominal.cpp
     文件        2165  2019-03-10 18:46  数据结构实验\数据结构实验一\SeqList.cpp
     目录           0  2019-03-10 20:03  数据结构实验\数据结构实验三\
     文件        9530  2019-03-10 19:43  数据结构实验\数据结构实验三\图的邻接表实现加Dijkstra实现.cpp
     文件        7659  2019-03-10 19:34  数据结构实验\数据结构实验三\带权值的有向图(邻接矩阵).cpp
     文件           0  2019-03-10 19:35  数据结构实验\数据结构实验三\记得更改cpp文件的名字(中文改成英文).txt
     目录           0  2019-03-10 20:03  数据结构实验\数据结构实验二\
     文件        9775  2019-03-10 19:18  数据结构实验\数据结构实验二\BiTree.cpp
     文件        2418  2019-03-10 19:21  数据结构实验\数据结构实验二\HFMTree.cpp
     目录           0  2019-03-10 20:03  数据结构实验\数据结构实验四\
     文件        6194  2019-03-10 19:50  数据结构实验\数据结构实验四\main.cpp
     文件           0  2019-03-10 19:51  数据结构实验\数据结构实验四\排序验证.txt

评论

共有 条评论

相关资源