21xrx.com
2024-12-22 18:52:11 Sunday
登录
文章检索 我的文章 写文章
C++版数据结构与算法教程课后答案
2023-06-28 22:16:39 深夜i     --     --
C++ 数据结构 算法 教程 答案

C++版数据结构与算法教程,是一本非常好的教程,对于学习C++数据结构和算法来说非常有帮助。课后习题答案更是必须要的,因为它可以帮助学生检查自己的理解和学习进度。

以下是一些课后答案:

1.单向链表的实现

#include

using namespace std;

struct node{

  int data;

  node* next;

};

node* create(){

  node* head=NULL;

  node* pprev=NULL;

  int n;

  cin >> n;

  while(n != -1){

    node* pnew = new node;

    pnew->data=n;

    pnew->next=NULL;

    if (head==NULL)

      head=pnew;

      pprev=pnew;

    else

      pprev->next=pnew;

      pprev=pprev->next;

    cin>>n;

  }

  return head;

}

void print(node *head){

  node* p=head;

  while(p != NULL)

    cout< data<<" ";

    p=p->next;

  cout<

}

int main(){

  node* a=create();

  print(a);

}

2.栈的实现

#include

using namespace std;

const int MAX=100;

int stack[MAX];

int top=-1;

void push(int a){

  if (top >= MAX-1)

    cout<<"stack is full";

    return;

  else{

    top++;

    stack[top]=a;

  }

}

int pop(){

  if (top < 0)

    cout<<"stack is empty";

    return -1;

  else{

    int ret=stack[top];

    top--;

    return ret;

  }

}

int main(){

  push(1);

  push(2);

  push(3);

  cout< <

  cout< <

  cout< <

}

3.二叉树的实现

#include

using namespace std;

struct treeNode{

  int data;

  treeNode* left;

  treeNode* right;

};

treeNode* create(){

  int n;

  cin >> n;

  if (n == -1)

    return NULL;

  treeNode* pnew = new treeNode;

  pnew->data=n;

  pnew->left=create();

  pnew->right=create();

  return pnew;

}

void preOrder(treeNode* root){

  if (root != NULL){

    cout< data<<" ";

    preOrder(root->left);

    preOrder(root->right);

  }

}

void inOrder(treeNode* root){

  if (root != NULL){

    inOrder(root->left);

    cout< data<<" ";

    inOrder(root->right);

  }

}

void postOrder(treeNode* root){

  if (root != NULL){

    postOrder(root->left);

    postOrder(root->right);

    cout< data<<" ";

  }

}

int main(){

  treeNode* root=create();

  //前序遍历

  preOrder(root);

  cout<

  //中序遍历

  inOrder(root);

  cout<

  //后序遍历

  postOrder(root);

}

以上是一些C++版数据结构与算法教程课后习题的答案。希望能对学习C++的同学们有所帮助,加油!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复