第一篇:二叉排序樹節(jié)點的插入和刪除實驗設(shè)計報告(用C語言實現(xiàn))
二叉排序樹節(jié)點的插入和刪除實驗設(shè)計報告
1程序功能描述:
用二叉樹的所學知識建立二叉排序樹,對已建立的排序二叉樹進行遍歷(先序,中序,后序),插入,查找,刪除。
2主要數(shù)據(jù)結(jié)構(gòu)描述:
二叉排序樹若不為空樹,那么相比于其他的樹,它具有一下特性: 1.、左兒子永遠小于雙親結(jié)點;
2、右兒子永遠大于雙親結(jié)點。其中結(jié)點由一個存放信息的空間和兩個指針構(gòu)成。
3程序結(jié)構(gòu)描述:
以C語言為工具,在主函數(shù)外部定義二叉排序樹的遍歷(先序,中序,后序),插入,刪除函數(shù),在主函數(shù)中調(diào)用,其中主函數(shù)中用switch…case…結(jié)構(gòu),有選擇性的進行功能的實現(xiàn)。
4算法描述:
二叉排序樹插入結(jié)點的算法:
1若建立的二叉排序樹中已有與欲插入的數(shù)相同的結(jié)點則無須插入;
2以while(p)控制循環(huán)變量,若欲插入的數(shù)比根結(jié)點小的話,執(zhí)行 P=P->lchild;若大于p->data;則執(zhí)行 P=P->rchild;,直至p為空。此過程中一直用指針F記錄前一步p的位置。
3在第2歩確定了的位置的基礎(chǔ)上進行插入,若與插入的數(shù)小于F->data,則執(zhí)行F->lchild=S;若大于F->data,則執(zhí)行 F->rchild=S;二叉排序樹的建立:
通過對插入函數(shù)的調(diào)用即 T=InsertBST(T,k);以while(k!=-1)控制循環(huán),遞歸的進行插入直至生成二叉排序樹。
二叉排序樹的遍歷算法:
1、先序遍歷:先輸出根結(jié)點的信息;然后調(diào)用函數(shù)PreOrderTraverse(T->lchild),遞歸的輸出左子樹的信息;最后調(diào)用函數(shù)PreOrderTraverse(T->rchild),遞歸輸出有子樹的信息。
2、中序遍歷:先調(diào)用函數(shù)PreOrderTraverse(T->lchild),遞歸的輸出左子樹的信息;然后輸出根結(jié)點的信息;最后調(diào)用函數(shù)PreOrderTraverse(T->rchild),遞歸輸出有子樹的信息。
3、后序遍歷:先調(diào)用函數(shù)PreOrderTraverse(T->lchild),遞歸的輸出左子樹的信息;然后調(diào)用函數(shù)PreOrderTraverse(T->rchild),遞歸輸出有子樹的信息,最后輸出根結(jié)點的信息。
二叉排序樹的刪除算法:
通過*f,*p,*q,*c;四個指針,先對二叉排序樹查找,用f,q指針跟誰p指針,通過q->data=p->data,掩蓋與刪除的信息;再借助指針c,通過語句 f->lchild=c和free(p)或f->rchild=c和free(p),刪除結(jié)點p,此時結(jié)點的刪除得以實現(xiàn)。
5程序測試方案與測試結(jié)果描述:
功能1:二叉樹的遍歷
輸入節(jié)點信息:3 6 8 4 1-1; 先序遍歷31648 中序遍歷13468 后序遍歷14863 截圖如下:
功能2:向原有的二叉樹中插入一個結(jié)點 插入2 插入后遍歷如下: 先序遍歷:312648 中序遍歷:123468 后序遍歷:214863 截圖如下:
功能3:刪除一個結(jié)點: 刪除4 刪除后遍歷結(jié)果如下: 先序遍歷:31268 中序遍歷:12368 后序遍歷:21863 截圖如下:
功能0: 輸入0 顯示:退出。截圖如下:
第二篇:用c語言實現(xiàn)單純形法的編程
用c語言實現(xiàn)單純形法的編程
#include “stdio.h” #include “math.h” #include 程序: #include lfsr(int a,int b,int c,int d,int T[]);void main(){ int A[19]={1,0,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1}; int B[22]={0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,1};int C[23]={1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0,1};for(int i=0;i { printf(“%d”,A[18]^B[21]^C[22]); lfsr(13,16,17,18,A); lfsr(12,16,20,21,B); lfsr(17,18,21,22,C);} else if(j==1) { printf(“%d”,A[18]^B[21]^C[22]); if(A[9]==0) lfsr(13,16,17,18,A); if(B[11]==0) lfsr(12,16,20,21,B); if(C[11]==0) lfsr(17,18,21,22,C);} else if(j==2) { printf(“%d”,A[18]^B[21]^C[22]); if(A[9]==1) lfsr(13,16,17,18,A); if(B[11]==1) lfsr(12,16,20,21,B); if(C[11]==1) lfsr(17,18,21,22,C);} else if(j==3) { printf(“%d”,A[18]^B[21]^C[22]); lfsr(13,16,17,18,A); lfsr(12,16,20,21,B); lfsr(17,18,21,22,C); } } printf(“n n”);} lfsr(int a,int b,int c,int d,int T[]){ int i; for(i=d;i>0;i--) { T[i]=T[i-1]; } T[0]=T[a]^T[b]^T[c]^T[d]; return(T[0]);} 密鑰流: A[19]={1,0,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1}; B[22]={0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,1};C[23]={1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0,1};密鑰流序列: 1111 1111 1101 1010 1101 0101 0111 0001 1110 0000 1010 1000 0101 1100 0100 0000 求解Josephus問題實驗總結(jié) 1實驗題目: josephus問題可描述如下: 設(shè)有n個人圍成一個環(huán),現(xiàn)從第s個人開始報數(shù),數(shù)到第m的人出列,然后從出列的下一個人從新開始報數(shù),數(shù)到第m的人又出列,如此重復(fù),直至所有人均出列為止。求這些人出列的順序。 2實驗?zāi)康模?/p> 熟練掌握線性表的順序?qū)崿F(xiàn)和鏈式實現(xiàn)的基本操作。 3實驗方法: 通過運用已學的向量和循環(huán)單鏈表編寫程序,并在電腦上運行,實現(xiàn)josephus問題的求解。4實驗過程與結(jié)果: (1)輸入n值為6,s值為3,m值為2,輸入A[i]的值為1 2 3 4 5 6 輸出結(jié) 果為:4 6 2 5 3 1 截圖如下: (2) 1、輸入n值為-1, s值為3,m值為2,顯示:ERROR。截圖如下: 2、輸入n值為6, s值為0,m值為3,顯示:ERROR。截圖如下: 3、輸入n值為6, s值為3,m值為0,顯示:ERROR。截圖如下 : 5試驗體會與收獲: (1)寫程序是要隨時注意縮進,使得程序?qū)哟吻逦?,便于尋找錯誤,同時也讓別人看的更加方便。(2)構(gòu)造循環(huán)單鏈表,要以單鏈表為單元指針指向把最后個單元與第一個即可(3)建立好循環(huán)單鏈表后,通過三個指針(p,q,tmp)的指示,來確定報數(shù),出列人的位置,得以完成。具體過程如下:p指向head頭指針,通過s次循環(huán)將p指向報數(shù)的起始位置s,用q記錄p的位置,再經(jīng)過m次循環(huán)另p指向出列者的位置,將其數(shù)值保存在一維數(shù)組中,并將其從鏈表中刪除,p指向下一次起始位置,結(jié)束時返回數(shù)組A[j]。(4)刪除節(jié)點時,注意要釋放節(jié)點。 (5)構(gòu)造函數(shù)時,一定要明確函數(shù)的類型,即返回行還是不返回型,以免出現(xiàn)不必要的錯誤。 《軟件開發(fā)基礎(chǔ)(Java)》 綜合性實驗報告 題 目: MVC實驗 圖書管理系統(tǒng) 班 級: 學生學號: 學生姓名: 指導老師: 提交時間: 2016年1月14日 數(shù)學與信息學院 一、實驗?zāi)康?/p> 掌握基于MVC的三層架構(gòu)。 二、實驗題目 通過數(shù)據(jù)源和DAO對象訪問數(shù)據(jù)庫。其中JavaBeans實現(xiàn)模型,訪問數(shù)據(jù)庫,Servlet實現(xiàn)控制器,JSP頁面實現(xiàn)視圖。 模型包括2個JavaBean:BookBean用于存放圖書信息,BookDAO用于訪問數(shù)據(jù)庫。? 控制器包括2個Servlet:BookQueryServlet根據(jù)請求參數(shù)查詢圖書信息、BookInsertServlet用來向數(shù)據(jù)庫中插入數(shù)據(jù)。? 視圖包括4個JSP頁面:bookQuery.jsp顯示查詢頁面、bookInsert.jsp顯示插入頁面、display.jsp顯示查詢結(jié)果頁面和errorPage.jsp顯示錯誤頁面。? 三、具體實現(xiàn) 1.設(shè)計數(shù)據(jù)庫 CREATE TABLE books(bookid varchar(20)PRIMARY KEY, title varchar(50)author varchar(30), publisher varchar(40), price Float); 2.程序流程 查詢圖書信息 插入圖書信息 3.代碼實現(xiàn) (1)存放圖書信息的JavaBeans代碼BookBean.java package com.beans;import java.io.*; public class BookBean implements Serializable{ private String bookid = null;//圖書編號 private String title = null;// 圖書書名 private String author = null;// 圖書作者 private String publisher = null;// 圖書出版社 private float price = 0.0F;// 圖書價格 public BookBean(){} public BookBean(String bookId, String author,String title, String publisher, float price){ this.bookid = bookId; this.title = title; this.author = author; this.publisher = publisher;this.price = price; } public String getBookid(){ return this.bookid;} public String getTitle(){ return title;} public String getAuthor(){ return this.author;} public float getPrice(){ return price;} public String getPublisher(){ return publisher;} public void setBookid(String bookid){ this.bookid=bookid;} public void setTitle(String title){this.title=title;} public void setAuthor(String author){ this.author = author;} public void setPrice(float price){this.price=price;} public void setPublisher(String publisher){ this.publisher = publisher;} } (2)BookDAO是一個簡單的JavaBeans,它實現(xiàn)數(shù)據(jù)庫的訪問 package com.beans;import java.sql.*; import javax.sql.*;import javax.naming.*;import java.util.ArrayList; public class BookDAO{ private static Context context= null; private DataSource dataSource = null; public BookDAO(){ try{ if(context == null){ context = new InitialContext(); context =(Context)context.lookup(“java:comp/env”); // 連接的是在context.xml下面配置的數(shù)據(jù)庫連接池 dataSource =(DataSource)context.lookup(“databasePool”); } }catch(NamingException e2){ } } // 根據(jù)書號查詢圖書信息 public BookBean searchBook(String bookid){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rst = null; BookBean book = new BookBean(); try{ conn = dataSource.getConnection(); pstmt = conn.prepareStatement(“SELECT * FROM books WHERE bookid=?”); pstmt.setString(1,bookid); rst = pstmt.executeQuery(); if(rst.next()){ book.setBookid(rst.getString(“bookid”)); book.setTitle(rst.getString(“title”)); book.setAuthor(rst.getString(“author”)); book.setPublisher(rst.getString(“publisher”)); book.setPrice(rst.getFloat(“price”)); return book; }else{ return null; } }catch(SQLException se){ return null; }finally{ try{ conn.close(); }catch(SQLException se){ } } } // 插入一本圖書記錄 public boolean insertBook(BookBean book){ Connection conn = null; PreparedStatement pstmt = null; try{ conn = dataSource.getConnection(); pstmt = conn.prepareStatement(“INSERT INTO books VALUES(?,?,?,?,?)”); pstmt.setString(1,book.getBookid()); pstmt.setString(2,book.getTitle()); pstmt.setString(3,book.getAuthor()); pstmt.setString(4,book.getPublisher()); pstmt.setFloat(5,book.getPrice()); pstmt.executeUpdate(); pstmt.close(); return true; }catch(SQLException se){ return false; }finally{ try{ conn.close(); }catch(SQLException se){ } } } } (3)JSP頁面bookQuery.jsp實現(xiàn)根據(jù)書號查詢圖書信息 <%@ page contentType=“text/html;charset=UTF-8” %> 文檔為doc格式Dn[K])K=i;for(i=0;i 第三篇:A5算法C語言實現(xiàn)報告(寫寫幫推薦)
第四篇:求解Josephus問題實驗總結(jié)(用C語言循環(huán)單鏈表實現(xiàn))
第五篇:JavaWeb用MV模式C實現(xiàn)簡單的圖書管理系統(tǒng)報告資料
聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。