【星海随笔】数据结构实践

数据结构实践
实践题
/2023/04/24

//============================================================================
// Name        : TEST.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <string>
#include <queue>
#include <bits/stdc++.h>

using namespace std;


#define MAXSIZE 10
typedef char ET;
typedef int statu;
int j;
struct ShunxuNode{
	ET data[MAXSIZE];
	statu length;
};

typedef struct ShunxuNode *List;

List makeEmpty(){
	List list = (List)malloc(sizeof(struct ShunxuNode));
};

void showList(List list){
	for(int i=0;i<list->length;i++){
		printf("%2c",list->data[i]);
	};
	cout << endl;
}

bool insert(List list ,ET x,statu i){
	for(int j=list->length;j>=i;j--){
		list->data[j] = list->data[j-1];
	}
	list->data[i-1] = x;
	list->length++;
	return true;
}

bool Delete(List list,statu i){
	if(list->length==0){
		cout << "kong" << endl;
		return false;
	}
	if(i<=0||i>list->length){
		cout << "weizhifalse" << endl;
	    return false;
	}
	for(int j=i;j<list->length; j++){
		list->data[j-1] = list->data[j];
	}
	list->length--;
	return true;
}

int search(List list,ET x){
    for (int i=0; i<list->length; i++) {
        if (list->data[i]==x) {
            return i+1;
        }
    }
    return -1;
}

bool getData(List list,statu i,ET &c){
    if (i<=0||i>list->length) {
        cout << i << "位置没有数据,定位出错" << endl;
        return false;
    }
    c = list->data[i-1];
    return true;
}

void maoPao(int R[],int x){
	int i,j,temp;
	for(i=0;i<=x;i++){
		bool flag = 0;
		for(j=1;j<=x-1;j++){
			if(R[j] > R[j+1]){
				temp = R[j];
				R[j] = R[j+1];
				R[j+1] = temp;
				flag = 1;
			}
		}
		if(flag==0){
			return;
		}
	}
}


int main(int argc,const char * argv[]) {
	string a;
	int num;
	char words;
	int i;
	char str1[30];
	string shunxu;

	cout << "INPUT:"<<endl;
	gets(str1);
    int len = strlen(str1);

    for(i=0;i<=len-1;i++){
        shunxu[i] = str1[i];
    }
    List list = makeEmpty();

    for(i=0;i<=len-1;i++){
    	insert(list, shunxu[i],i+1);
    	cout << shunxu[i]<< endl;
    }
    cout << "=-=" << endl;
    showList(list);
    int t1;
    t1 = search(list,'a');
	cout << t1 << endl;
	Delete(list, t1);
    showList(list);

    char R[9];
    for(i=1;i<len+1;i++){
    	getData(list,i,R[i-1]);
    }
    for(i=0;i<len;i++){
    	cout << R[i] << " ";
    }
    int T[9];
    for(i=0;i<len;i++){
    	T[i] = int(R[i]);
    }
    cout << endl;
    cout << "mao pao" << endl;
//    maoPao(T,len);

    for(i=0;i<len;i++){
    	cout << T[i] << " ";
    }
    cout << endl;
    maoPao(T,len-1);
    for(i=0;i<len;i++){
        cout << T[i] << " ";
    }
//    int R[] = int(list);
//    cout << R[0] << endl;
//    maoPao(int(list),len);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值