数据结构实践
实践题
/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;
}