­

【学习记录】广州大学数据结构实验

  • 2019 年 10 月 28 日
  • 笔记

数据结构实验

为了掌握数据结构这门课,我重修了这门课的实验,以求打好基本功。

实验一:链式存储结构

  1. 线性表的链表实验
    1. 随机生成10个100-999之间的三位整数放入链表。我用的是循环链表,跟单链表差别不大,只是最后一个元素最后指向的是头结点。
void Create(LinkNode *&L)                        //给定一个头结点,输出链表  {                                                //逆序头插法  	L = new LinkNode;  	L->data = 0;  	L->next = L;                            //头结点开始时指向自己  	LinkNode* s;  	int x = 100;  	int y = 999;  	srand((unsigned)3);  	for(int i=0; i < 10; i++)  	{  		s = new LinkNode;  		s->data = (rand() %( y-x+1 ))+ x ;//这一句,只需要简单修改x,y的值就能直接修改上下限  		s->next = L->next;  		L->next = s;    	 }  }  

 

 

 

【10.27】完成单链表的创建,升序插入元素

#include”LinkList.h”

using namespace std;

void Insert(LinkNode *L,int num)
{
    LinkNode* p = L->next,*pre=L,*Tem;   //p指向第一个结点用来比较,pre指向p前面的点。Tem是新结点
    Tem = new LinkNode;
    Tem->data = num;    //要把值给Tem结点,不然出问题
    if(L->next == NULL)      //当L没有结点时,插入
    {
        Tem->next = NULL;
        L->next = Tem;
        return;
    }
    while (p && (p->data < num))  //寻找合适的位置插入
    {
        pre = p;
        p = p->next;
    }
    if(p == NULL)     //没有找到合适位置,一直来到了链表最后
    {
        pre->next = Tem;
        Tem->next = NULL;
    }
    else         //找到了合适位置
    {
        Tem->next = p;
        pre->next = Tem;
    }
    
}

void Display(LinkNode *L)
{
    LinkNode *o;
    o = L->next;
    while(o != NULL)
    {
        cout<<o->data<<” “;
        o = o->next;
    }
}
void Create(LinkNode *L)
{
    L = new LinkNode;
    L->data = 0;
    L->next = NULL;  //初始化L
    int num=0;
    cout<<“请输入要插入的元素,输入-1结束”<<endl;
    cin>>num;
    while(num != -1)
    {
        Insert(L,num);
        L->data = L->data +1;
        cin>>num;
    }
    cout<<“输入完成,列表元素如下:”<<endl;
    Display(L);
}

 
#include"stdio.h"  #include<iostream>  #include<stdlib.h>    struct LinkNode  {      LinkNode *next;      int data;   };    void Insert(LinkNode *L, int num);  void Display(LinkNode *L);  void Create(LinkNode *L);

View Code

 1 #include"LinkList.h"   2   3 using namespace std;   4   5   6 int main()   7  {   8     LinkNode *L = NULL;   9     Create(L);  10     return 0;  11  }