关山雪冷 发表于 2017-6-12 09:04:16

初学小白被老师一个C语言数据结构直接吓傻了,求大神帮忙看看

小白表示才学了C没多久就被老师直接扔了个数据结构的大题,看完之后一脸懵逼{:5_100:} 小白连数据结构的教学视频都没看完啊5555有没有大佬帮忙看看{:5_100:} 代码如下:
/*
        源文件名:P1.cpp
        功能:顺序表操作
*/
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdio.h>
#include <process.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

const max=10000;

struct SqList
{
        int data;         //存放元素的数组
        int length;            //当前长度
};

void init(SqList &list);
void display(SqList &list);
void insert(SqList &list,int,int);
void search(SqList &list,int);
void del(SqList &list,int);
void simpleSort(SqList &list);
void binarySearch(SqList &list,int);
void nzlist(SqList &list);

SqList list;

void main()
{
        char choice;
        int key;

        while (1)
        {
                system("cls");
                cout << "   学号: ****   姓名:***            \n ";//cout就等价于printf
                cout << "\n\n\n\n";                           
                cout << "\t\t             顺序表操作\n";
                cout << "\t\t======================================";
                cout << "\n\n";
                cout << "\t\t             1:初始化       \n";
                cout << "\t\t             2:显示         \n";
                cout << "\t\t             3:单个插入   \n";
                cout << "\t\t             4:查找         \n";
                cout << "\t\t             5:删除         \n";
                cout << "\t\t             6:简单选择排序 \n";
                cout << "\t\t             7:折半查找   \n";
                cout << "\t\t             8:逆置线性表   \n";
                cout << "\n";
                cout << "\t\t             0:退出         \n";
                cout << "\n";
                cout << "\t\t请选择:" << flush;

                choice = getch();
                system("cls");
               
                switch(choice)
                {
                        case '1':
                                init(list);
                                break;
                        case '2':
                                display(list);
                                break;
                        case '3':
                                //在wz出插入key
                                int wz;                               
                                insert(list,wz,key);
                                break;
                        case '4':
                                //请输入查找数
                                search(list,key);
                                break;
                        case '5':
                                //请输入要删除的数
                                del(list,key);
                                break;
                        case '6':
                                simpleSort(list);
                                break;               
                        case '7':
                //请输入要查找的数
                                binarySearch(list,key);
                                break;
                        case '8':
                nzlist(list);
                                break;
                        case '0':
                                exit(0);
                }
        }
}



//屏幕提示后,从键盘输入线性表长度和随机数种子,生成指定长度的线性表list
void init(SqList &list)
{
        int i;
        while (1)
        {
                printf("输入元素个数(0 - %d ):\n",max);
                scanf("%d",&list.length);
                if (list.length >= 0 && list.length <= max)
                        break;
                printf("\n");
        }
        while (1)
        {          
                printf("输入随机数种子(0-32767):\n");
                scanf("%d",&i);
                if (i >= 0 && i <= 32767)
                        break;
                printf("\n");
        }
        srand(i);//指定随机数种子,相同的种子将产生相同的数据序列
        rand();

        for (i = 0; i < list.length; i++)
        {
                list.data = rand() % 10000;
        }
        for (i = list.length; i < max; i++)
                list.data = 0;
}

//在屏幕上依次显示线性表list中的元素个数和全部元素
void display(SqList &list)
{
       
}

//屏幕提示后,从键盘输入一个元素值以及需要插入的位置,然后把这个新元素插到线性表list的指定位置处
//应有溢出判断和报告
void insert(SqList &list,int wz,int x)
{
}

//屏幕提示后,在线性表list中搜索这个元素key,若存在该元素,则给出位置信息,
//否则,显示“不存在此数!”
//屏幕显示搜索结果和搜索过程中的比较次数
void search(SqList &list,int key)
{

}

//屏幕提示后,在线性表list中删除这个元素key,并显示相关信息
//屏幕显示删除成功与否的信息,并显示比较次数和移动次数
void del(SqList &list,int key)
{

}

//对线性表list进行简单选择排序
//屏幕显示比较次数和移动次数
void simpleSort(SqList &list)
{

}


//屏幕提示后,对经过排序的线性表list进行折半查找这个元素key
//屏幕显示查找结果,并显示比较次数
void binarySearch(SqList &list,int key)
{

}

//编程实现一个顺序表的就地逆置,即利用原表的存储空间将顺序表逆置。
void nzlist(SqList &list)
{

}


/* 必做题:

8、有序插入(显示比较次数、移动次数),
       屏幕提示后,从键盘输入一个元素值,在经过排序的线性表中插入这个元素;
       屏幕显示比较次数和移动次数,应有溢出判断和报告。

9、编程实现将两个非递减的顺序表进行合并,要求同样的数据元素只出现一次;

10、请分别编程实现下面排序算法(1)直接插入排序(2)冒泡排序;
       (3)shell排序(步长为5,3,1);(4)快速排序;
           (5)堆排序算法;(6)归并算法;

*/

/*

选做题: 利用三元组顺序表存储矩阵,实现矩阵的转置(请独立写程序实现)

*/

关山雪冷 发表于 2017-6-12 11:02:59

请问下各位大佬Dev c++是不是并不支持所有头文件啊?我在Dev运行时提示iostream.h和iomanip.h都错误……

阳光加冰 发表于 2017-6-19 15:56:40

头文件错误估计是用了C源文件来编译。

留你毅口翔 发表于 2017-6-26 20:47:49

这是c++的编写的吧

不失微笑 发表于 2017-8-18 02:20:52

cout用错了
页: [1]
查看完整版本: 初学小白被老师一个C语言数据结构直接吓傻了,求大神帮忙看看