當前位置:首頁 » 編程語言 » 數據結構c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數據結構c語言

發布時間: 2022-01-22 19:00:25

『壹』 數據結構c語言

  1. 把scanf("%d ",&q->name);改成scanf("%s",q->name);。

  2. 把scanf("%d ",&q->score);改成scanf("%d",&q->score);。

  3. 函數studlist *CreateStudent()應該有一個返回值。若不需要返回值,請改成voidCreateStudent()。

  4. if(p->Next->score<q->score)中p->Next->score並未賦值,怎麼能與q->score比較?這里就會跳出運行。

  5. char name[3];中3太小隻能放下一個漢字或兩個字元。

  6. 適當的地方應該有釋放所申請的內存的語句。

『貳』 數據結構C語言

++;
printf("第%d個數據:",i);
printf("%d\n",p->data);
p=head->next; //改成p=p->next
不是給你回答過一次嗎?
http://..com/question/13189159.html
這個是你問的吧,還把問題關了
上次我明明調式過了能回答的

『叄』 數據結構(c語言版)

測試數據1:
創建二叉樹,輸入先序擴展序列:ABD##E##C#F##
先序遍歷輸出節點:ABDECF
中序遍歷輸出節點:DBEACF
後序遍歷輸出節點:DEBFCA

二叉樹示意圖:
A
/
BC
//
DE#F
///
######


測試數據2:
創建二叉樹,輸入先序擴展序列:ABC##DE#G##F###
先序遍歷輸出節點:ABCDEGF
中序遍歷輸出節點:CBEGDFA
後序遍歷輸出節點:CGEFDBA

二叉樹示意圖:
A
/
B#
/
CD
//
##EF
//
#G##
/
##


#include<stdio.h>
#include<stdlib.h>

typedefstructNode//二叉樹的結構體
{
chardata;//字元
structNode*lchild;//左分支
structNode*rchild;//右分支
}Bitree;

//創建二叉樹:用"先序遍歷"(遞歸法)
voidCreateBiTree(Bitree**bt)
{
charch;
scanf("%c",&ch);//輸入字元
if(ch=='#')//'#'是空節點NULL
*bt=NULL;
else
{
*bt=(Bitree*)malloc(sizeof(Bitree));
(*bt)->data=ch;
CreateBiTree(&((*bt)->lchild));
CreateBiTree(&((*bt)->rchild));
}
}

//用"先序遍歷"輸出節點(遞歸法)
voidpreOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
printf("%c",ptr->data);
preOrder(ptr->lchild);
preOrder(ptr->rchild);
}
}

//用"中序遍歷"輸出節點(遞歸法)
voidinOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
inOrder(ptr->lchild);
printf("%c",ptr->data);
inOrder(ptr->rchild);
}
}

//用"後序遍歷"輸出節點(遞歸法)
voidpostOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
postOrder(ptr->lchild);
postOrder(ptr->rchild);
printf("%c",ptr->data);
}
}

intmain()
{
Bitree*root;
printf("創建二叉樹,輸入先序擴展序列:");
CreateBiTree(&root);

printf("先序遍歷輸出節點:");
preOrder(root);
printf(" 中序遍歷輸出節點:");
inOrder(root);
printf(" 後序遍歷輸出節點:");
postOrder(root);

printf(" ");
return0;
}

『肆』 數據結構c語言版

#include "stdio.h"
typedef char datatype;
typedef struct node{

datatype data;

struct node *next;
} stack;
stack * creat(void)
{
char ch;
stack * head;
stack *p;
head=NULL;/*初始化為空*/
ch=getchar( );
while (ch!='\n'){
p=(stack*)malloc(sizeof(stack));/*分配空間*/
p->data=ch;/*數據域賦值*/
p->next=head;/*指定後繼指針*/
head=p;/*head指針指定到新插入的結點上*/
ch=getchar( );
}
return (head);
}

void MakeNull(stack *s)/*使棧s為空*/
{
stack *p=s;
while(s!=NULL){
s=s->next;
free(p);/*釋放空間*/
p=s;
}
}

datatype Top(stack *s)
{
if(Empty(s))/*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else
return s->data;
}

void Pop(stack *s)
{
stack *p;
if(Empty(s)) /*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else{
p=s;
s=s->next;
free(p);/*釋放棧頂空間*/
}
}

void Push(stack *s,datatype x)
{

stack *p;
p=(stack*)malloc(sizeof(stack));
p->data=x;
p->next=s;
s=p;
}

int Empty(stack *s)
{
return(s==NULL);
}

void main()
{
stack* m_stack=creat();
char m_top;
if(!Empty(m_stack))
{
m_top=Top(m_stack);
Pop(m_stack);
}
else
Push(m_stack,'a');
MakeNull(m_stack);
}

『伍』 數據結構(c語言)

1.數據結構是一門研究非數值計算的程序設計問題中計算機的 A 以及它們之間的 _ B 和運算等的學科。
① A. 數據元素 B. 計算方法 C. 邏輯存儲 D. 數據映象
② A. 結構 B. 關系 C. 運算 D. 演算法
2.數據結構被形式地定義為(K,R),其中K是 B 的有限集,R是K上的 A 有限集。
① A. 演算法 B. 數據元素 C. 數據操作 D. 邏輯結構
② A. 操作 B. 映象 C. 存儲 D. 關系
3.在數據結構中,從邏輯上可以把數據結構分成____C____。
A. 動態結構和靜態結構 B. 緊湊結構和非緊湊結構
C. 線性結構和非線性結構 D. 內部結構和外部結構
4.演算法分析的目的是 C ,演算法分析的兩個主要方面是 A 。
① A. 找出數據結構的合理性 B. 研究演算法中的輸入和輸出的關系
C. 分析演算法的效率以求改進 D. 分析演算法的易懂性和文檔性
② A. 空間復雜度和時間復雜度 B. 正確性和簡單性
C. 可讀性和文檔性 D. 數據復雜性和程序復雜性
5.計算機演算法指的是 C ,它必須具備輸入、輸出和 C 等5個特性。
① A. 計算方法 B. 排序方法
C. 解決問題的有限運算序列 D. 調度方法
② A. 可執行性、可移植性和可擴充性
B. 可行性、確定性和有窮性
C. 確定性、有窮性和穩定性
D. 易讀性、穩定性和安全性

三、填空題
1.下面程序段的時間復雜度是___O(n*m)____。
For (i=0;i<n;i++)
For (j=0;j<m;j++)
A[i][j]=0;
2.下面程序段的時間復雜度是___O(n^(1/2))____。
i=s=0
While(s<n)
{
i++; /* i=i+1 */
s+=i; /* s=s+i */
}
3.下面程序段的時間復雜度是___O(n^2)____。
s=0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
s+=B[i][j];
sum=s;
4.下面程序段的時間復雜度是__O(log3 N)(註:對N取3的對數)_____。
i=1;
While (i<=n)
i=i*3;

『陸』 數據結構(C語言)

#define maxsize 100 //鏈表最大長度
typedef struct{
ElemType data;
int cur;
}component,SLinkeList[maxsize]
這中描述方法便於在不設「指針」類型的高級程序設計語言中使用鏈表結構。在如上的描述的鏈表中,數組的一個分量表示一個結點,同時用游標(指示器cur)代替指針指示結點在數組中的相對位置。數組第零分量可以看成頭結點,其指針域指示鏈表的第一個結點。這種存儲結構仍需要預先分配一個較大的空間,但在作線性表的插入和刪除操作時不需要移動元素,僅需修改指針,故仍具有鏈式存儲結構的主要特點。
void InitSpace_SL(SLinkeList &space)
//InitSpace_SL( )為創建鏈表函數
{
//將一維數組space中的各分量鏈成一個備用鏈表,space[0].cur為頭指針
//"0"表示空指針
for(i=0;i<maxsize-1;++i)
space[i].cur=i+1;
space[maxsize-1].cur=0;
}

『柒』 數據結構和C語言有什麼區別

數據結構是數據及數據之間的關系,C語言只是一門編程語言,可以用C語言來寫程序,實現數據按照某種特定的關系來組織和管理數據(也就是實現數據結構),所以數據結構的課程會有不同的語言版本,其實就是用不同的語言來實現數據結構了。呵呵,不知道你明白沒有呢~~

『捌』 數據結構C語言版

完整的C代碼,希望對你有幫助

#include <stdio.h>
#include <stdlib.h>
#define List_Init_Size 10
typedef int ElemType;

typedef struct
{
ElemType *elem;
int listsize; /*線性表的長度*/
int length; /*當前元素個數*/
}sqlist;

/*初始化線性表*/
int InitList(SqList *L)
{
L-> listsize=List_Init_Size;
L-> elem=(ElemType*)malloc(List_Init_Size*sizeof(ElemType));
if(!L-> elem)return -1;
L-> length=0;
return 1;
}

void Fen(SqList *L,SqList *Lb,SqList *Lc) //此函數實現分開放置
{
int i,j=0,k=0;
Lb->listsize=5; Lb->elem=(ElemType*)malloc(5*sizeof(ElemType));
Lc->listsize=5; Lc->elem=(ElemType*)malloc(5*sizeof(ElemType));
for(i=0;i<10;i++)
{
if(i%2==0)
{
Lc->elem[j]=L->elem[i];j++;
}
else if(i%2==1)
{
Lb->elem[k]=L->elem[i];k++;
}
}
}

void main()
{
int i,e;SqList L,Lb,Lc;
InitList(&L);
printf("請輸入十個數,用空格隔開:\n");
for(i=0;i<10;i++)
{
scanf("%d",&L.elem[i]);
}
printf("你構造的線性表是:\n");
for(i=0;i<10;i++)
{
printf( "%d ",L.elem[i]);
}
Fen( &L,&Lb,&Lc);

printf("\n線性表Lb為:\n");
for(i=0;i<5;i++)
{
printf( "%d; ",Lb.elem[i]);
}

printf("\n線性表Lc為:\n");
for(i=0;i<5;i++)
{
printf( "%d; ",Lc.elem[i]);
}

}

『玖』 數據結構 c語言版(嚴尉敏)

我看了一下,好像沒有代碼,全稱是:
《數據結構(C語言版)》配書光碟 DSDemo

數據結構演算法演示(Windows版)
使 用 手 冊

一、 功能簡介
本課件是一個動態演示數據結構演算法執行過程的輔助教學軟體, 它可適應讀者對演算法的輸入數據和過程執行的控制方式的不同需求, 在計算機的屏幕上顯示演算法執行過程中數據的邏輯結構或存儲結構的變化狀況或遞歸演算法執行過程中棧的變化狀況。整個系統使用菜單驅動方式, 每個菜單包括若乾菜單項。每個菜單項對應一個動作或一個子菜單。系統一直處於選擇菜單項或執行動作狀態, 直到選擇了退出動作為止。

二、 系統內容
本系統內含84個演算法,分屬13部分內容,由主菜單顯示,與《數據結構》教科書中自第2章至第11章中相對應。各部分演示演算法如下:
1. 順序表
(1)在順序表中插入一個數據元素(ins_sqlist)
(2)刪除順序表中一個數據元素(del_sqlist)
(3)合並兩個有序順序表(merge_sqlist)
2. 鏈表
(1)創建一個單鏈表(Crt_LinkList)
(2)在單鏈表中插入一個結點(Ins_LinkList)
(3)刪除單鏈表中的一個結點(Del_LinkList)
(4)兩個有序鏈表求並(Union)
(5)歸並兩個有序鏈表(MergeList_L)
(6)兩個有序鏈表求交(ListIntersection_L)
(7)兩個有序鏈表求差(SubList_L)

================================================

我有,留下email,最好是Gmail

盤中內容

\DSDemoW 數據結構演算法演示系統(Windows版)β測試版
\DSDemoC 數據結構演算法演示系統(C語言描述)V3.1C中文版
Readme.txt 光碟使用說明

對不對?