數據結構c語言百度
❶ 數據結構c語言
把scanf("%d ",&q->name);改成scanf("%s",q->name);。
把scanf("%d ",&q->score);改成scanf("%d",&q->score);。
函數studlist *CreateStudent()應該有一個返回值。若不需要返回值,請改成voidCreateStudent()。
if(p->Next->score<q->score)中p->Next->score並未賦值,怎麼能與q->score比較?這里就會跳出運行。
char name[3];中3太小隻能放下一個漢字或兩個字元。
適當的地方應該有釋放所申請的內存的語句。
❷ C語言的數據結構是什麼
數據結構,data
strucure
是具有特定關系的數據元素的集合。它包含兩方面的信息:D+S
D
即數據元素的集合,也就是數據對象;S
數據元素間的關系,而這種關系指的是數據元素之間本身的關系
也叫做邏輯結構!而這種邏輯結構需要通過一種高級語言
比如c語言才能使得將這種邏輯結構在計算機中表現出來
也就是通過高級語言存儲結構。
❸ c語言常見的數據結構有哪些
1、線性數據結構
元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表。
2、樹形結構
結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆。
3、圖形結構
在圖形結構中,允許多個結點之間相關,稱為“多對多”關系。
(1)線性數據結構:元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表
(2)樹形結構:結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆
(3)圖形結構:在圖形結構中,允許多個結點之間相關,稱為“多對多”關系
❹ 數據結構和C語言有什麼區別
數據結構是數據及數據之間的關系,C語言只是一門編程語言,可以用C語言來寫程序,實現數據按照某種特定的關系來組織和管理數據(也就是實現數據結構),所以數據結構的課程會有不同的語言版本,其實就是用不同的語言來實現數據結構了。呵呵,不知道你明白沒有呢~~
❺ C語言數據結構
#include#include#defineINFINITY0#defineMAX_VERTEX_NUM10//最大頂點數#defineMAX_EDGE_NUM40//最大邊數typedefenum{DG,DN,UDG,UDN}Graphkind;typedefcharVertexType;//頂點數據類型typedefstructArcCell{intadj;//無權圖,1或0表示相鄰否;帶權圖則是權值。//int*info;}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{VertexTypevexs[MAX_VERTEX_NUM];//頂點向量AdjMatrixarcs;//鄰接矩陣intvexnum,arcnum;//圖的當前頂點數和弧數。Graphkindkind;}MGraph;intLocateVex(MGraphG,VertexTypev1){inti;for(i=0;i>G.vexnum;cout>G.arcnum;for(inti=0;i>G.vexs[i];}for(i=0;i>v1>>v2;cout>w;i=LocateVex(G,v1);j=LocateVex(G,v2);G.arcs[i][j].adj=w;G.arcs[j][i].adj=G.arcs[i][j].adj;}return1;}voiddispMGraph(MGraphG){cout#include#defineMAX_VERTEX_NUM20//最大頂點數#defineMAX_EDGE_NUM40//最大邊數intvisited[MAX_VERTEX_NUM];typedefintVertexType;//頂點數據類型typedefstructArcNode{intadjvex;intweight;structArcNode*nextarc;}ArcNode;typedefstructVNode{VertexTypedata;ArcNode*firstarc;}VNode,AdjList[MAX_VERTEX_NUM];typedefstruct{AdjListvertices;intvexnum,arcnum;intkind;}ALGraph;voidCreateDG(ALGraph&G){inti,j,k;ArcNode*p;cout>G.vexnum;cout>G.arcnum;cout>i>>j;p=(ArcNode*)malloc(sizeof(ArcNode));p->adjvex=j;p->nextarc=G.vertices[i].firstarc;G.vertices[i].firstarc=p;}}voidDisp(ALGraphG){inti,j;ArcNode*p;coutnextarc;j=1;}if(j==1)coutadjvex])dfs(G,p->adjvex);p=p->nextarc;}return;}voiddfs1(ALGraphG){inti;for(i=0;i>v;cout<<"深度優先序列:";dfs1(G);cout<
❻ 數據結構C語言
int LocateElem(Sqlist L,ElemType e)這是定義了一個函數(或者叫方法),int 是函數的返回值數據類型(整數型),LocateElem是函數名稱,後面的括弧裡面是參數,有兩個參數,Sqlist是自定義的順序表數據結構類型(參數類型),L是第一個參數變數名,ElemType是順序表單體數據結構類型,e是第二參數變數名。函數的作用就是在L中的elem順序表中,查找等於e的元素,如果有就返回其在順序表中的序號,沒有返回0
❼ 《數據結構(C語言版)》pdf下載在線閱讀全文,求百度網盤雲資源
《數據結構(C語言版)》(嚴蔚敏)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1LjQAo9GcvRLb9pPpvdmBTw
書名:數據結構(C語言版)
作者:嚴蔚敏
豆瓣評分:6.1
出版社:清華大學出版社
出版年份:2012-5
頁數:335
內容簡介:
《數據結構》(C語言版)是為「數據結構」課程編寫的教材,也可作為學習數據結構及其演算法的C程序設計的參數教材。
本書的前半部分從抽象數據類型的角度討論各種基本類型的數據結構及其應用;後半部分主要討論查找和排序的各種實現方法及其綜合分析比較。其內容和章節編排1992年4月出版的《數據結構》(第二版)基本一致,但在本書中更突出了抽象數據類型的概念。全書採用類C語言作為數據結構和演算法的描述語言。
作者簡介:
嚴蔚敏 清華大學計算機系教授,長期從事數據結構教學和教材建設,和吳偉民合作編著的《數據結構》曾獲「第二屆普通高等學校優秀教材全國特等獎」和「1996年度國家科學技術進步獎三等獎」。
吳偉民 廣東工業大學計算機學院副教授,碩士生導師。廣東省計算機學會圖像圖形分會秘書長。長期從事數據結構教學和系列教材建設。主要研究領域:數據結構和演算法、可是計算、編譯和虛擬機技術、智能系統等。和嚴蔚敏合作編著的《數據結構》曾獲「第二屆普通高等學校優秀教材全國特等獎」和「1996年度國家科學技術進步獎三等獎」。
❽ c語言數據結構
#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct student{ int age; char name[10]; struct student *next; } ;
void main() { struct student *p,*p1,*p2;
p1=(struct student *)malloc(sizeof(struct student)); if ( p1==NULL ) goto errorexit0;
strcpy(p1->name,"張三"); p1->age=30; p1->next=NULL;
p2=(struct student *)malloc(sizeof(struct student)); if ( p2==NULL ) goto errorexit1;
strcpy(p1->name,"李四"); p2->age=40; p2->next=NULL;
p=p1; p->next=p2;
printf("%s %s\n",p->name,(p->next)->name);
free(p1); free(p2); return;
errorexit1: free(p1); printf("申請節點2出錯。\n");
errorexit0: printf("申請節點1出錯。\n");
}
❾ c語言數據結構
以上代碼中,用數組創建鏈表Createlist函數存在較多的邏輯錯誤,你得再好好理清思路,參考代碼如下:
linklist*Createlist(inta[],intn)
{
linklist*Head,*p,*q;
inti;
Head=(linklist*)malloc(sizeof(linklist));
Head->Next=NULL;
for(i=0;i<n;i++){
p=Head;//注意要保證初始條件
q=(linklist*)malloc(sizeof(linklist));
q->data=a[i];
while(p->Next!=NULL){
if(p->Next->data<q->data)
break;
else
p=p->Next;
}
q->Next=p->Next;//這兩句的位置問題?
p->Next=q;
}
returnHead;
}