| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:堆栈溢出
只看楼主 加入收藏
薛玉敏
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-11-13
收藏
 问题点数:0 回复次数:0 
堆栈溢出
#include <stdio.h>
#include "算法排序.cpp"

void main ()
{
    SqList L;
    InitList_L (L);
    int n,i;
    printf ("输入待排序记录的个数n: ");
    scanf ("%d",&n);
    for (i=1;i<=n;i++)
    {
        printf ("输入第%d个记录的关键字以及其他信息: ",i);
        scanf ("%d",&L.r[i].key);
        scanf ("%d",&L.r[i].otherinfo);
        L.length++;
    }
    //SelectSort (L);
    //InsertSort (L);
    //BubbleSort (L);
    QuickSort (L);
    for (i=1;i<=n;i++)
    {
        printf ("%d %d",L.r[i].key,L.r[i].otherinfo);
        printf ("\n");
    }
    //DestroyList_L (L);
}


1-2.cpp如下所示
#include <iostream>
#include <stdio.h>
#define MAXSIZE 10

typedef int KEYTYPE;
typedef int INFOTYPE;
typedef struct
{
    KEYTYPE key;
    INFOTYPE otherinfo;
}RcdType;
typedef struct
{
    RcdType *r;
    //RcdType r[MAXSIZE+1];
    int length;
}SqList;

void InitList_L (SqList &L)
{
    L.r=new RcdType [MAXSIZE+1];
    L.length=0;
}

void DestroyList_L (SqList &L)
{
    delete [] L.r;
    L.length=0;
}
   

/********************************************/
/******          选择排序       *************/
/********************************************/
void SelectSort (SqList &L)
{
    RcdType w;
    int i,j,k;
    for (i=1;i<L.length;i++)
    {
        j=i;
        for (k=i+1;k<=L.length;k++)
            if (L.r[k].key<L.r[j].key)
                j=k;
        if (j!=i)
        {
            w=L.r[i];
            L.r[i]=L.r[j];
            L.r[j]=w;
        }
    }
}

/********************************************/
/******          插入排序       *************/
/********************************************/
void InsertSort (SqList &L)
{
    int i,j;
    for (i=2;i<=L.length;i++)
    {
        if (L.r[i].key<L.r[i-1].key)
        {
            L.r[0]=L.r[i];
            for (j=i-1;L.r[0].key<L.r[j].key;j--)
                L.r[j+1]=L.r[j];
            L.r[j+1]=L.r[0];
        }
    }
}

/********************************************/
/******          起泡排序       *************/
/********************************************/
void BubbleSort (SqList &L)
{
    RcdType w;
    int i,j;
    i=L.length;
    int lastExchangeIndex;
    while (i>1)
    {
        lastExchangeIndex=1;
        for (j=1;j<i;j++)
        {
            if (L.r[j].key>L.r[j+1].key)
            {
                w=L.r[j];
                L.r[j]=L.r[j+1];
                L.r[j+1]=w;
            }
            lastExchangeIndex=j;
        }
        i=lastExchangeIndex;
    }
}

/********************************************/
/******          快速排序       *************/
/********************************************/
int Partition (RcdType R[],int low,int high)
{
    R[0]=R[low];
    while (low<high)
    {
        while (low<high && R[high].key<R[0].key)
            high--;
        R[low++]=R[high];
        while (low<high && R[low].key>R[0].key)
            low++;
        R[high--]=R[low];
    }
    R[low]=R[0];
    return low;
}

void QSort (RcdType R[],int s,int t)
{
    int pivotloc;
    if (s<t)
    {
        pivotloc=Partition(R,s,t);
        QSort (R,s,pivotloc-1);
        QSort (R,pivotloc+1,t);
    }
}

void QuickSort (SqList &L)
{
    QSort (L.r,1,L.length);
}

在VC6.0下运行没有得到预期结果,调试时,出现stack overflow 还会出现Accession Violation
这是什么问题,怎么解决啊?
        


搜索更多相关主题的帖子: include 关键字 记录 信息 
2014-11-13 21:18
快速回复:堆栈溢出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016587 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved